一、定时器
第一种方式:
1 利用事件 void timerEvent ( QTimerEvent * ev)
2 启动定时器 startTimer( 1000) 毫秒单位
3 timerEvent 的返回值是定时器的唯一标示 可以和ev->timerid 做比较
第二种方式:
1 利用定时器类 QTimer
2 创建定时器对象 QTimer * timer = new QTimer(this)
3 启动定时器 timer->start(毫秒)
4 每隔一定毫秒,发送信号 timeout ,进行监听
5 暂停 timer->stop
.h文件
#ifndef WIDGET_H#define WIDGET_H#include<QWidget>namespace Ui {classWidget;}classWidget:public QWidget
{
Q_OBJECT
public:explicitWidget(QWidget *parent =0);~Widget();//重写定时器的事件 虚函数 子类重写父类的虚函数virtualvoidtimerEvent(QTimerEvent *);int id1;//定时器1的唯一标示int id2;//定时器2的唯一标示private:
Ui::Widget *ui;};#endif// WIDGET_H
.cpp文件
#include"widget.h"#include"ui_widget.h"#include<QTimer>//定时器类#include<QMouseEvent>#include<QDebug>
Widget::Widget(QWidget *parent):QWidget(parent),ui(new Ui::Widget){
ui->setupUi(this);//定时器第一种方式//启动定时器 每隔1s调用一下timerEvent函数
id1 =startTimer(1000);//参数1 间隔 单位 毫秒
id2 =startTimer(2000);//定时器第二种方式
QTimer * timer =newQTimer(this);//启动定时器
timer->start(500);connect(timer,&QTimer::timeout,[=](){staticint num =1;//label4 每隔0.5秒+1
ui->label_4->setText(QString::number(num++));});//点击停止或开始按钮 实现停止定时器或者启动定时器connect(ui->btn,&QPushButton::clicked,[=](){
timer->stop();//timer->start(500);});}void Widget::timerEvent(QTimerEvent * ev){if(ev->timerId()== id1){staticint num =1;//label2 每隔1秒+1
ui->label_2->setText( QString::number(num++));}if(ev->timerId()== id2){//label3 每隔2秒 +1staticint num2 =1;
ui->label_3->setText( QString::number(num2++));}}
Widget::~Widget(){delete ui;}
二、显示效果
版权归原作者 无聊的阿乐 所有, 如有侵权,请联系我们删除。