0


QT学习之定时器

一、定时器

第一种方式:

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;}

二、显示效果

在这里插入图片描述

标签: qt 学习 ui

本文转载自: https://blog.csdn.net/weixin_44618297/article/details/123503876
版权归原作者 无聊的阿乐 所有, 如有侵权,请联系我们删除。

“QT学习之定时器”的评论:

还没有评论