QT中定时器的使用方法
2017-05-01 22:42
387 查看
QT中定时器的使用方法
(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔
startTimer(50);//单位为毫秒
(2)在类的构造函数中设定如下:
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽
timer->start(1000);
QT定时器的两种应用
2009-10-14 8:44
可以用槽函数实现 (1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔 startTimer(50);//单位为毫秒 (2)在类的构造函数中设定如下: QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽 timer->start(1000); [c++] view plaincopyprint? QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽 timer->start(1000); [c++] view plain copy print? QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽 timer->start(1000); QTimer *timer=new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽 timer->start(1000); 然而:所有Qobject的子类在设置定时器时都不必加载一个Qtimer对象,因为这样造成了资源浪费且需要书写多余的函数,很不方便.最好的办法是重载timerEvent函数,具体写法如下: class Gui_DlgViewCtrlDatum :public QDialog { Q_OBJECT public: Gui_DlgViewCtrlDatum( QWidget* parent = 0, constchar* name = 0,bool modal = FALSE, WFlags fl = 0 ); ~Gui_DlgViewCtrlDatum(); protected: void timerEvent( QTimerEvent * ); }; void Gui_DlgViewCtrlDatum::timerEvent( QTimerEvent *e ) { //statements } [c++] view plaincopyprint? class Gui_DlgViewCtrlDatum : public QDialog { Q_OBJECT public: Gui_DlgViewCtrlDatum( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~Gui_DlgViewCtrlDatum(); protected: void timerEvent( QTimerEvent * ); }; void Gui_DlgViewCtrlDatum::timerEvent( QTimerEvent *e ) { //statements } [c++] view plain copy print? class Gui_DlgViewCtrlDatum : public QDialog { Q_OBJECT public: Gui_DlgViewCtrlDatum( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~Gui_DlgViewCtrlDatum(); protected: void timerEvent( QTimerEvent * ); }; void Gui_DlgViewCtrlDatum::timerEvent( QTimerEvent *e ) { //statements } class Gui_DlgViewCtrlDatum : public QDialog { Q_OBJECT public: Gui_DlgViewCtrlDatum( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~Gui_DlgViewCtrlDatum(); protected: void timerEvent( QTimerEvent * ); }; void Gui_DlgViewCtrlDatum::timerEvent( QTimerEvent *e ) { //statements } 再在Gui_DlgViewCtrlDatum的构造函数中设置时间间隔: startTimer(50);//单位为毫秒 这样,每隔50毫秒,函数timerEvent便会被调用一次. 网上又说: 定时器事件的优先级很低,如果需要多个定时器,那么跟踪每一个定时器的ID是很费时的。这种情况下,较好的方法是为每一个定时器创建一个QTimer对象。在每一个时间间隔内,QTimer发出一个timeout()信号。QTimer还支持一次性定时器(只发出一次timeout()信号的定时器)。 |
相关文章推荐
- QT中定时器的使用方法
- Qt中定时器使用的两种方法
- QT中定时器的使用方法
- QT中定时器的使用方法
- Qt中定时器使用的两种方法
- QT中定时器的使用方法
- Qt中定时器使用的两种方法
- Qt中定时器使用的两种方法
- Qt中定时器使用的两种方法
- QT中定时器的使用方法
- Qt使用定时器方法一:定时器事件
- QT中定时器的使用方法
- QT中定时器的使用方法
- Qt中定时器使用的两种方法
- Qt+VC环境搭建以及使用方法
- VC++ WM_TIMER 定时器使用方法
- 使用Qt编写服务器端程序(包括Http传输服务器端)的方法
- java的定时器使用方法
- VC++实现非窗口类中使用定时器的方法
- Qt中使用QSqlDatabase::removeDatabase()的正确方法