定时器
Qt中提供了两种方式实现定时器,第一种是通过startTimer的方式启动定时器,该函数返回定时器的id,然后我们需要为实现定时器的类重写timerEvent。我们先介绍这一种,创建Qt Application项目,项目默认的类名为Widget,继承自QWidget。
重写timerEvent
我们在QWidget类里先声明三个定时器的id,并且声明我们要重写的timerEvent事件
1 | class Widget : public QWidget |
接下来我们在构造函数中启动三个定时器
1 | Widget::Widget(QWidget *parent) |
在析构函数中回收三个定时器
1 | Widget::~Widget() |
然后重写timerEvent,进而实现三个定时器的功能
1 | void Widget::timerEvent(QTimerEvent *event) |
运行程序后,就可以看到三个定时器被调用,并且根据每个定时器的id输出信息。
QTimer实现定时器
我们在Widget的声明中,添加一个槽函数
1 | class Widget : public QWidget |
接下来我们在Widget的构造函数中初始化一个定时器,并且连接定时器发出的信号和槽函数,然后启动定时器
1 | QTimer * timer = new QTimer(this); |
然后我们在ui里添加一个lcdnumber的控件,用来显示当前的时间,然后在定时器的槽函数slot_update_led中设置lcdnumber显示时间信息
1 | void Widget::slot_update_led() |
程序运行后,就可以根据定时器每个一秒获取时间信息显示在lcdNumber上了。