![]() |
|
|
![]()
|
|
| Meragon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.5.2012 Репутация: нет Всего: нет |
Никак не могу реализовать события, происходящие по определенной дате.
Т.е., допустим, при наступление завтра был запланирован определенный метод, назначенный на это событие. Вопрос в том как, что нужен прланировщик какой-то или в цикле главной программы это дело сверять каждую милисекунду? Мне бы как-нибудь попроще. Если событий будет больше 1000, то явно будут проблемы. |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
Meragon, QTimer тебе в помощь: http://qt-project.org/doc/qt-4.8/qtimer.html#timeout
Если лень мониторить время самому, то: 1. при создании события создаёшь соответствующий таймер (интервал для него вычислишь в момент создания). 2. таймер запихиваешь в какой-нить контейнер, откуда потом после срабатывания удалишь его. 3. в слоте заведённом на timeout() таймера через sender() определяешь таймер и выполняешь необходимое действие. 4. Таймер, в случае ненадобности удаляешь. Второй вариант - реализуешь действия через паттерн команда, унаследовав от QObject - тогда создаёшь команду и ставишь ей таймер через QObject::startTimer(). - а команда внутри timerEvent() реализует требуемое дейстие и в случае необходимости вызывает свой deleteLater() что бы удалиться на следующем eventLoop-е. -------------------- Дорогу осилит идущий |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: нет Всего: 85 |
Я когда-то делал простую напоминалку. Обошелся всего одним таймером, хотя кол-во событий может быть неограничено. События хранились в отсортированном по времени срабатывания массиве, (у меня это был map) Таймер ставится на самое ближайшее событие. При его срабатывании, событие удаляется (если циклическое, то перемещается), таймер снова ставится на самое ближайшее событие. Все. |
|||
|
||||
| Meragon |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 27.5.2012 Репутация: нет Всего: нет |
_GRIN_, да таймер видел уже, но о том, что сказал volatile, не подумал.
Попробую реализовать. з.ы. спасибо ребят. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |