Название: РЕШЕНО: Ссылка на экземпляр класса QObject Отправлено: leonopulos от Октябрь 30, 2014, 13:04 Здравствуйте, друзья.
Пытаюсь написать аналог функции QCoreApplication::instance но для QObject. То есть хочу получить ссылку на экземпляр класса. Код: //MyApplication.h В чём может быть причина? Название: Re: Ссылка на экземпляр класса QObject Отправлено: Пантер от Октябрь 30, 2014, 13:07 Не совсем понял, но ты, походу, хочешь реализовать Синглтон (http://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B8%D0%BD%D0%BE%D1%87%D0%BA%D0%B0_%28%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29)
Название: Re: Ссылка на экземпляр класса QObject Отправлено: leonopulos от Октябрь 30, 2014, 13:23 Не совсем понял, но ты, походу, хочешь реализовать Синглтон (http://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B8%D0%BD%D0%BE%D1%87%D0%BA%D0%B0_%28%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29) Нет. я хочу из других классов приложения получить ссылку на конкретный объект и через неё получить доступ к его функциям и т.д.Название: Re: Ссылка на экземпляр класса QObject Отправлено: Igors от Октябрь 30, 2014, 13:47 Проверьте что в конструктор "MyApplication" подается указатель на действительно application. И зачем давать имя MyApplication если этот класс не наследует QApplication? Это капитально сбивает с толку
Название: Re: Ссылка на экземпляр класса QObject Отправлено: vulko от Октябрь 30, 2014, 13:53 return (static_cast<MyApplication *>(obj));
так нельзя. qobject_cast как минимум. А вообще странный гемор какой-то. Почему бы в instance не делать return this? Название: Re: Ссылка на экземпляр класса QObject Отправлено: leonopulos от Октябрь 30, 2014, 14:16 Спасибо всем.
Решил проблему. В конструктор класса действительно не передавался предок. Вернее, предок передавался (this), но надо было передавать корневого предка от QCoreApplication (qApp). Исправил, все заработало. Название: Re: Ссылка на экземпляр класса QObject Отправлено: leonopulos от Октябрь 30, 2014, 14:20 return (static_cast<MyApplication *>(obj)); так нельзя. qobject_cast как минимум. А вообще странный гемор какой-то. Почему бы в instance не делать return this? this нельзя. instance описана в классе, как static. она не видит внутренности конкретного экземпляра класса. Ладно, уже все решил. Спасибо. |