Russian Qt Forum
Ноябрь 01, 2024, 03:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: не приходит сигнал  (Прочитано 2518 раз)
once_again_abc
Гость
« : Ноябрь 08, 2011, 09:20 »

сигнал-слот регистрируется успешно (привязка по умолчанию), emit сигнала проходит успешно - пробежался по стеку вызовов, никаких ошибок - сигнал ставится в очередь получателям, но до слотов получателей почему-то не доходит. в чем может быть проблема?
Записан
Странник
Гость
« Ответ #1 : Ноябрь 08, 2011, 09:27 »

сигнал-слот регистрируется успешно (привязка по умолчанию), emit сигнала проходит успешно - пробежался по стеку вызовов, никаких ошибок - сигнал ставится в очередь получателям, но до слотов получателей почему-то не доходит. в чем может быть проблема?
соединение прямое или через очередь? если через очередь - цикл обработки событий запущен?
Записан
once_again_abc
Гость
« Ответ #2 : Ноябрь 08, 2011, 09:39 »

кажется я знаю в чем причина.

сигнал1 соединен со слотом1 через Qt::QueuedConnection, в слоте1 я жду на WaitCond очень долго. из-за этого любые другие сигналы не доходят до получателей, а интерфейс умирает. как это победить? заводить отдельный поток для обработки условия? других вариантов пока не вижу.
Записан
twp
Гость
« Ответ #3 : Ноябрь 08, 2011, 13:24 »

а есть возможность задать время ожиания? тогда можно сделать что-то типа такого:

Код:
  while(!WaitCond(time))
       QCoreApplication::processEvents();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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