Russian Qt Forum
Мая 15, 2025, 23:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Синглтон + сигналы QObject  (Прочитано 16947 раз)
BuRn
Гость
« : Декабря 07, 2014, 22:30 »

Есть синглтон, обычный, Маерса, делаю коннект на объект возвращаемый статическим методом getInstance, синглтон унаследован от QObject. Но вот почему-то сигналы не ловятся от него, мб кто сталкивался, в чем подвох?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Декабря 07, 2014, 22:52 »

Q_OBJECT макрос есть?
Записан

ArchLinux x86_64 / Win10 64 bit
BuRn
Гость
« Ответ #2 : Декабря 07, 2014, 22:55 »

Q_OBJECT макрос есть?
Да, если вы про класс
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Декабря 08, 2014, 01:07 »

в консоль сыпятся ошибки коннекта?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Декабря 08, 2014, 07:37 »

Может тип коннекта задать другой?
Записан
Bepec
Гость
« Ответ #5 : Декабря 08, 2014, 08:34 »

А вы точно привязываете сигналы-слоты к уже существующему объекту?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Декабря 08, 2014, 08:36 »

Вон сколько вопросов пришлось задать. А привел бы код, сразу получил бы ответ.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BuRn
Гость
« Ответ #7 : Декабря 08, 2014, 22:46 »

А вы точно привязываете сигналы-слоты к уже существующему объекту?
getInstance не может возвращать не существующий объект, в нем он как раз и создается если не создан.
В лог ошибок не сыпется.
сам синглтон:
Код:
class ManagerProxy: public QObject
{
    Q_OBJECT
public:
    static ManagerProxy *getInstance();
    QMap<QString,int> getProxy();
private:
    ManagerProxy();
    ~ManagerProxy();
    static ManagerProxy* instance;
    CollectorProxy collector;
    bool _locker;
    int _countFailLoadProxy;
private slots:
    void loadLiveProxy();
    void endLoadProxySlot();
signals:
    void emptyProxyList();
    void fullProxyList();
    void failLoadProxyList();
    void endLoadProxy();
};
ManagerProxy *ManagerProxy::getInstance()
{
    instance = new ManagerProxy();
    return instance;
}
connect(ManagerProxy::getInstance(),SIGNAL(fullProxyList()),this,SLOT(startLoadPagefromProxy()));
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #8 : Декабря 08, 2014, 23:10 »

Красиво. На каждый вызов getInstance новый объект.
Чудо-синглетон.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Декабря 08, 2014, 23:43 »

если я правильно помню, Мейерс рекомендует статическую стековую переменную в методе
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #10 : Декабря 09, 2014, 10:36 »

Согласен - чудо код, ещё и коннект прописан в месте, где ничего не создается вроде бы.
Хотя если честно впервые вижу коннект после описания класса.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #11 : Декабря 09, 2014, 11:41 »

если я правильно помню, Мейерс рекомендует статическую стековую переменную в методе
"статическая стековая" - это что-то новенькое)
Наверное, всё-таки, "скоповая"?
Записан

Qt 5.11/4.8.7 (X11/Win)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #12 : Декабря 09, 2014, 13:39 »

наверное Улыбающийся терминология хромает.

если память выделяем не в куче, значит стековая Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #13 : Декабря 09, 2014, 13:52 »

если память выделяем не в куче, значит стековая Улыбающийся
Неправильно.
Штудируем "Организация памяти процесса".
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Декабря 09, 2014, 15:01 »

Неправильно.
Штудируем "Организация памяти процесса".
Весьма сомнительная статейка Улыбающийся Если "ближе к стандарту", то наверное "нелокальная переменная с локальной областью видимости". Хотя и так ясно что имелось ввиду, просто иногда хочется попридираться  Улыбающийся
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 2.872 секунд. Запросов: 23.