Базовый таймер wxWidgets - PullRequest
       10

Базовый таймер wxWidgets

2 голосов
/ 21 февраля 2009

Будучи новичком в wxWidgets, мне нужен пример кода, как заставить работать wxTimer.

Ссылка дает 3 способа его использования, но не включает пример кода ни для одного из них. Оптимально, я бы хотел, чтобы метод 2 работал.

1 Ответ

7 голосов
/ 21 февраля 2009

(из примеров / виджетов / 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, поэтому таймер подключается к «this» (вашему окну) при его создании. Теперь, когда события идут к вашему окну, EVT_TIMER, вероятно, является наиболее эффективным способом связать это с вашей функцией OnProgressTimer.

Вам также понадобится функция для вызова ...

void GaugeWidgetsPage::OnProgressTimer(wxTimerEvent& event)
{

Это не должно быть сложнее, чем это.

...