初识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来代替多线程. - 小型任务操作,主线程中
比如界面更新。但数据库交互这种需要等待和响应的操作和与硬件的交互,就不适合。 - 延迟执行