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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема получения сигналов от потока в момент изменения размера виджета  (Прочитано 3564 раз)
lex_newton
Гость
« : Декабрь 08, 2010, 17:58 »

Есть некий виджет, размер которого можно менять. И второй поток, который отправляет в виджет сигналы.
В момент изменения размера виджета сигналы встают в очередь и обрабатываются лишь после того, как размер виджета был изменен (пользователь перестал изменять размер и отпустил кнопку мыши)

ОС: windows xp

Я создаю виджет который рисует график сигнала. В отдельном потоке создается QImage и по средствам signal/slot передается в виджет.
При зменении размера делается запрос на перерисовку графика(прямо в resizeEvent).

Аналогичный пример находится в примерах qt demo -> threading -> mandelbrot.

Вопрос:
Как сделать так, чтобы сообщения не вставали в очередь, а сразу же обрабатывались?

Если в resizeEvent() делать вызов qApp->processEvents() то сигналы обрабатываются. но это, имхо, шаманский бубен. и вообще говоря сигнал может прийти после того, как я вызоыву qApp->processEvents(), в этом случае сигнал будет обработан лишь при следующем входе в resizeEvent().

:: 2010.12.09, 00:11 ::
QT 4.4.3 - наблюдается такой эффект
QT 4.6.3 - вроде по отзывам нормально. буду тестировать.

:: 2010.12.09, 16:40 ::
QT 4.7.1 - все нормально. Тема закрыта.

« Последнее редактирование: Декабрь 09, 2010, 13:40 от lex_newton » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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