Будучи новым для wxWidgets Мне нужен пример кода, как заставить wxTimer работать.Базовый wxWidgets Timer
The reference дает 3 способа его использования, но не включает в себя пример кода для любого из них. Оптимально, я хотел бы получить метод 2.
Будучи новым для wxWidgets Мне нужен пример кода, как заставить wxTimer работать.Базовый wxWidgets Timer
The reference дает 3 способа его использования, но не включает в себя пример кода для любого из них. Оптимально, я хотел бы получить метод 2.
(из образцов/виджетов/gauge.cpp :)
Настройки вашего мероприятия константа
enum
{
GaugePage_Reset = wxID_HIGHEST,
GaugePage_Progress,
провода события в вашу функцию члена (с помощью константы события)
EVT_TIMER(GaugePage_Timer, GaugeWidgetsPage::OnProgressTimer)
, а затем вам необходимо создать и запустить ваш таймер.
static const int INTERVAL = 300; // milliseconds
m_timer = new wxTimer(this, GaugePage_Timer);
m_timer->Start(INTERVAL);
В документации второй метод, я думаю, что нужно понять, что ваш основной объект Window ISA wxEventHandler, поэтому таймер подключается к «этому» (вашему окну) при его создании. Теперь, когда события идут к вашему окну, EVT_TIMER, вероятно, самый эффективный способ подключить его к вашей функции OnProgressTimer.
Вам нужна функция для вызова тоже ...
void GaugeWidgetsPage::OnProgressTimer(wxTimerEvent& event)
{
Это не должно быть более сложным, чем это.
спасибо, эта ссылка побудила меня выяснить, что я объявляю таймер неправильно. Вам нужно объявить указатель wxTimer, а затем получить доступ к нему таким образом. – DShook
Наслаждайтесь! Мне очень нравится программирование wxWidgets. Внутри ... есть тонкие скрытые функциональные возможности в ... обслуживании html-страниц из .zip-файлов, используя стек eventHandlers для управления состоянием приложения, используя window.pushEventHandler(). Он блестящий и чистый. –