есть аналог QTimer? |
Здравствуйте, гость ( Вход | Регистрация )
есть аналог QTimer? |
Гость_Гость_* |
21.2.2012, 10:06
Сообщение
#1
|
Гости |
Подскажите пожалуйста как с помощью boost можно реализовать следующий функционал: через заданные промежутки времени вызывать член класса.
Нужен функционал в идеале наиболее похожий на QTimer из Qt если кто работал. |
|
|
Iron Bug |
21.2.2012, 14:17
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
прямого аналога нет. в общем случае, это будет выглядеть как-то так, через таймеры и сигналы:
http://stackoverflow.com/questions/1015494...1360942#1360942 |
|
|
BRE |
21.2.2012, 19:25
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Можно использовать и таймеры из asio.
|
|
|
Гость_Гость_* |
21.2.2012, 19:38
Сообщение
#4
|
Гости |
Спасибо, уже правда и сам разобрался, сделал не так красиво и реюзабельно как в примере, но там где сделал и так пойдет. Использовал asio::deadline_timer в купе с его же wait_async и boost::bind, при желании можно обойтись совсем без сигналов и слотов.
Напоролся правда на интересную особенность, которая хоть и написанна в документации черным по белым, но после того же Qt совсем не "читается" . Callback который передается в wait_async будет вызван как в случае если назначенное время истекло, так и в случае если таймер будет по каким либо причинам остановлен или будет изменен промежуток времени. А вот уже причина вызова callback'a передается ему в качестве параметра, от которого boost::bind так любезно позволяет отказаться. |
|
|
Iron Bug |
22.2.2012, 7:11
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
вариантов решения много. буст - не конкретный набор юзерских классов, как Qt, а стандартизация С++. это конструктор, из которого можно собирать что угодно.
ну, а документация на то и есть документация, чтобы её внимательно читать никто угадывать пожелания юзера не собирался, библиотеки буста задокументированы, код открыт. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 5:04 |