Russian Qt Forum

Qt => Вопросы новичков => Тема начата: brucemax от Апрель 06, 2012, 10:35



Название: Синхронное мигание пользовательских виджетов
Отправлено: brucemax от Апрель 06, 2012, 10:35
Ребят, подскажите какое-нибудь решение..  Есть набор пользовательских виджетов на форме, пользовательский виджет это отдельный класс, в котором помимо прочих функций реализовано мигание..  то есть при определённой команде или ситуации виджет начинает мигать рамкой.. (это уже работает). вопрос в следующем: как сделать мигание разных виджетов синхронным..     скажем..  есть виджеты..  один из них начинает мигать..  через некоторое время мигает ещё один..  и так чтобы не в разнобой с предыдущими.  Спасибо за ранее. 


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: mutineer от Апрель 06, 2012, 10:37
сделать один таймер на всех. При включении мигания виджет подписывается на сигнал от этого таймера, при выключении - отписывается


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: brucemax от Апрель 06, 2012, 14:25
сделать один таймер на всех. При включении мигания виджет подписывается на сигнал от этого таймера, при выключении - отписывается
а где создавать и запускать этот таймер?


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: Bepec от Апрель 06, 2012, 14:30
Допустим в основном классе, который и создаёт виджеты ;)


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: brucemax от Апрель 06, 2012, 14:38
Допустим в основном классе, который и создаёт виджеты ;)
а может как-то можно через static  в классе виджета?  =)


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: Bepec от Апрель 06, 2012, 14:40
А зачем вам такие проблемы?


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: popper от Апрель 06, 2012, 14:47
Можно завести класс-диспетчер, хранящий указатели на созданные виджеты. Диспетчер наследуется от QObject, а мигание проводится в QObject::timerEvent ( QTimerEvent * event )
А можно этот же timerEvent переопределить в для MainWindow и использовать QList<T> QObject::findChildren.


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: brucemax от Апрель 06, 2012, 16:16
А зачем вам такие проблемы?
Эти самые пользовательские мигающие виджеты лежат в отельной библиотеке, и как-то не очень хочется выносить часть их функционала в другие классы :)


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: Bepec от Апрель 07, 2012, 13:25
Ну так и заведи в отдельной библиотеке отдельный таймер. м?


Название: Re: Синхронное мигание пользовательских виджетов
Отправлено: Patrin Andrey от Апрель 07, 2012, 19:32
Цитировать
Эти самые пользовательские мигающие виджеты лежат в отельной библиотеке, и как-то не очень хочется выносить часть их функционала в другие классы :)
Если виджет не сам определяет, когда он должен мигнуть, то как раз это и не является частью его функционала. И логичнее логику мигания вынести в отдельный клас и при создании виджета связывать слоты.