如果需要在程序中周期性的处理事件,比如每秒种触发一次事件,那么可以使用QTimer。注意 QTimer 和 QTime 是不同的。
本文参照《Qt 定时器Timer使用》的介绍,测试代码成功。新建一个 Widget 程序,一切保持默认,然后修改代码,在UI设计里添加一个Label控件。
代码实现
mainwindow.h
04 | #include <QMainWindow> |
10 | class MainWindow : public QMainWindow |
15 | explicit MainWindow(QWidget *parent = 0); |
25 | #endif // MAINWINDOW_H |
mainwindow.cpp
01 | #include "mainwindow.h" |
02 | #include "ui_mainwindow.h" |
05 | MainWindow::MainWindow(QWidget *parent) : |
07 | ui( new Ui::MainWindow) |
10 | QTimer *timer = new QTimer( this ); |
11 | connect(timer,SIGNAL(timeout()), this ,SLOT(timerUpDate())); |
15 | MainWindow::~MainWindow() |
20 | void MainWindow::timerUpDate() |
22 | QDateTime time = QDateTime::currentDateTime(); |
23 | QString str = time .toString( "yyyy-MM-dd hh:mm:ss dddd" ); |
24 | ui->label->setText(str); |
运行结果
运行结果,程序每秒更新窗口label文本。
源码下载
扩展阅读
from: http://davidrobot.com/2014/12/qt5-qtimer.html