Qt6学习笔记十一(计时器事件)

简介: Qt6学习笔记十一(计时器事件)

一、定时器1

可以在帮助文档中找到计时器事件

需求:创建两个label,使得,上面一个label,每间隔1s就+1,下面一个label,每隔2s就+1

在widget.h中

//重写定时器的事件
    void timerEvent(QTimerEvent *e);
    int id1;//定时器1的唯一标识
    int id2;//定时器2的唯一标识

widget.cpp

#include "widget.h"
#include "./ui_widget.h"
#include<QTimerEvent>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //启动定时器
    id1 = startTimer(1000);  //参数1:间隔(单位毫秒)
    id2 = startTimer(2000);
}
Widget::~Widget()
{
    delete ui;
}
void Widget::timerEvent(QTimerEvent *e){
    if(e->timerId()==id1){
        //int num=1;  //如果不是静态变量,这个局部变量导致最终label显示的文本都是1
        static int num=1; //变量初始化调用一次,后面不会再调用。单例模式就是用这个来的
        //设置文本(每隔1秒+1)
        ui->label_2->setText(QString::number(num++));//将int转为QString
    }
    else if(e->timerId()==id2){
        //设置文本(每隔2秒+1)
        static int num2=1;
        ui->label_3->setText(QString::number(num2++));//将int转为QString
    }
}

定时器1:总结

  • 利用事件 void timerEvent(QTimerEvent *ev)
  • 启动定时器 startTimer(1000) 毫秒单位
  • startTimer 的返回值是定时器的唯一标示 可以和 ev->timerId 做比较

二、定时器2

推荐使用这种定时器的方式

//定时器第二种方式
    QTimer *timer = new QTimer(this);
    //启动定时器
    timer->start(500);//500毫秒
    connect(timer,&QTimer::timeout,[=](){
        static int num=1;
        //label4 每隔0.5秒+1
        ui->label_4->setText(QString::number(num++));
    });

另外还可以来一个按钮(实现计时暂停的功能)

//点击暂停按钮  实现停止定时器
    connect(ui->btn,&QPushButton::clicked,[=](){
        timer->stop();
    });

定时器2总结


相关文章
|
1月前
|
存储 Windows
(13) Qt事件系统(two)
文章详细介绍了Qt事件系统,包括事件分发、自定义事件、事件传播机制、事件过滤以及事件与信号的区别。
61 3
(13) Qt事件系统(two)
|
1月前
|
编解码 程序员
(12)Qt事件系统(one)
本文详细介绍了Qt事件系统,包括各种系统事件、鼠标事件、键盘事件、定时器等的处理方法和示例代码。
59 0
(12)Qt事件系统(one)
|
3月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
551 4
【Qt 学习笔记】Qt窗口 | 标准对话框 | 消息对话框QMessageBox
|
3月前
|
开发者
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念
192 4
|
3月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
659 4
|
3月前
|
数据安全/隐私保护
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建
344 4
|
3月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
70 4
|
3月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 输入对话框QInputDialog
222 3
|
3月前
|
数据可视化
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog
72 3
|
3月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 颜色对话框QColorDialog
494 3