初识wxWidget——wxTimer用法

初识wxWidget——wxTimer用法

1. wxTimer在gui.cpp里的定义

首先要在 gui.h 中定义符号常量:#define TIMER_ID 1000 (为个是其标识ID)。引用头文件 #include <wx/timer.h>
网上更多的是timer的静态事件表用法,我没有实验成功。因此,这里展示timer的动态事件连接用法,一定要用this指向,因为它是定义于窗体之内的。具体代码在 gui.cpp 里,如下所示。

m_timer = new wxTimer(this,TIMER_ID);
//在Connect Events里
this->Connect( wxEVT_TIMER, wxTimerEventHandler( MainFrameBase::OnTimer ));
//在Disconect Events里
this->Disconnect( wxEVT_TIMER, wxTimerEventHandler( MainFrameBase::OnTimer ));

2. wxTimer在main.cpp里的用法

  • 在需要调用启动timer计时的函数里写入:
  m_timer->Start(1000); //启动timer计时,1000毫秒间隔
  if(m_timer->IsRunning()) cout<<"111"<<endl;//测试是否正确启动
  • timer的ontimer事件函数
void MainFrame::OnTimer(wxTimerEvent& event)
{
//wirte your function code
}

3. wxTimer应用场景

  • 多线程的替代方案
    wxTimer类让你的程序可以周期性的收到提示,或者在某个特定的时间间隔收到提醒.如果你要使
    用线程处理的事情可以分成小的时间片,每隔几个毫秒处理一次,以便你的应用程序可以有足够的时
    间响应用户的输入,你就可以使用wxTimer来代替多线程.
  • 小型任务操作,主线程中
    比如界面更新。但数据库交互这种需要等待和响应的操作和与硬件的交互,就不适合。
  • 延迟执行
原创文章 2 获赞 2 访问量 171

猜你喜欢

转载自blog.csdn.net/yanxiaole_coder/article/details/106099975