Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: VAP от Июнь 15, 2008, 13:49



Название: "Замирание" отображения индикатора LCD
Отправлено: VAP от Июнь 15, 2008, 13:49
Здравствуйте!
Есть программка сигнально-слотовое соединение в потоках (пример из Шлее, Листинг 38.2).
Почему при перетаскивании мышкой главного окна приложения происходит "замирание" электронного
индикатора LCD? Кто-нибудь сталкивался с такой проблемой и как ее решить?


Название: Re: "Замирание" отображения индикатора LCD
Отправлено: Steven_Orko от Июнь 17, 2008, 12:44
Потому что окно не перерисовывается... ИМХО


Название: Re: "Замирание" отображения индикатора LCD
Отправлено: VAP от Июнь 17, 2008, 22:16

Если я правильно понимаю, то "перерисовывать" имеется ввиду repaint для QLCDNumber.
В Ассистенте говорится, что исключительно в событии  paintEvent() нужно делать это "перерисовывание".
А нельзя ли делать repaint по высылке сигнала timeout от таймера?


Название: Re: "Замирание" отображения индикатора LCD
Отправлено: pastor от Июнь 17, 2008, 22:28

Если я правильно понимаю, то "перерисовывать" имеется ввиду repaint для QLCDNumber.
В Ассистенте говорится, что исключительно в событии  paintEvent() нужно делать это "перерисовывание".
А нельзя ли делать repaint по высылке сигнала timeout от таймера?

Никто не мешает вызывать update\repaint. Можете вызывать эти методы с любого места программы, т.е. можите прикрутить это к таймеру.

ЗЫ: Если вы вызовете update\repaint в paintEvent() то будет рикурсия


Название: Re: "Замирание" отображения индикатора LCD
Отправлено: Steven_Orko от Июнь 19, 2008, 09:38

Если я правильно понимаю, то "перерисовывать" имеется ввиду repaint для QLCDNumber.

Вообще нет. Я имел ввиду не это...
Я имел ввиду, что некоторые оконные менеджеры не перерисовывают окно, когда перемещают в ответ на соответствующие действия пользователя.

Бывает, что он (менеджер) просто снимает статическую картинку с окна, само окно скрывает и перемещает этот рисунок. Уже потом, по завершению действия показывает само окно (реальное), а рисунок удаляется.