IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> QT——定时器 -> 正文阅读

[C++知识库]QT——定时器

一、概述

用到两个类:QTime 和 QTimer 类,其中
QTime :QT的时间类,用于存储时间的各个参数(比如小时,分钟,秒等)。
QTimer:QT的定时类。

1、在QTime 类中用到的函数:

函数功能
setHMS(int h, int m, int s, int ms = 0)设置时间中小时、分钟、秒、毫秒的初始值
addMSecs(int ms)在时间初始值的基础上加多少毫秒
addSecs(int s)在时间初始值的基础上加多少秒
toString(QStringView format)以字符串形式返回时间。format参数确定结果字符串的格式。

2、在QTimer类中用到的函数:

函数功能
start(int msec)设置定时时间大小,以毫秒为单位
stop()停止定时器

二、定时器UI界面设计

在这里插入图片描述

三、功能实现逻辑

1、用定时类QTimer中的start()方法,定时 一个时间。
2、定时时间到了后,会产生timeout信号,所以需要将此信号绑定一个槽函数。
3、在定时时间到的槽函数中,进行相关操作。
4、用定时类QTimer中的stop方法停止定时器。

四、代码展示

1、在widget.h中引入头文件,并引入两个时间类。

#include "QTimer"
#include "QTime"
#include "QDebug"
#include "QString"

QTimer timer;
QTime  time;

2、widget构造函数编写

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    i=1;        //用于计算名次的一个标志位
    time.setHMS(0,0,0,0);   //设置时间类的小时、分钟、秒、毫秒参数初值,为后面累加做准备,开始时各个参数为0

    ui->label_time->setText("00:00:00");	//设置标签默认显示
    connect(&timer,SIGNAL(timeout()),this,SLOT(timeout_slot()));    //定时器类QTimer计时到了后会产生timeout信号
}

3、开始或者暂停按钮的槽函数实现
实现点击按钮,定时器以1s的时间定时,再次点击,定时器停止。

void Widget::on_pushButton_startOrStop_clicked()
{
    if(ui->pushButton_startOrStop->text() == "开始")
     {
        timer.start(1000);  //定时1000ms,时间到了会触发timeout信号。
        ui->pushButton_startOrStop->setText("暂停");
      }
    else
    {
        timer.stop();       //定时器停止计数
        ui->pushButton_startOrStop->setText("开始");
    }
}

4、定时器定时时间到了产生timeout信号,这里实现此信号对应的槽函数

void Widget::timeout_slot()
{
    time=time.addMSecs(1000);       //表示计时1s,时间类的值上加1000ms数
    ui->label_time->setText(time.toString("hh:mm:ss"));     //设置时间类的显示格式,并显示在标签中
    //两种方法显示系统的时间:第一种可以显示日期时间;第二种只能显示时间
    ui->labe_systime->setText("系统时间:"+QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss dddd"));
    //ui->labe_systime->setText("系统时间:"+QTime::currentTime().toString("hh:mm:ss"));
}

5、实现重置按钮的点击槽函数
主要是停止定时器,并重置时间对象的值

void Widget::on_pushButton_reset_clicked()
{
    timer.stop();
    time.setHMS(0,0,0,0);       //重置时间初值
    
    ui->label_time->setText("00:00:00");    //重置标签显示的信息
    ui->pushButton_startOrStop->setText("开始");  //重置按钮的提示字
    ui->textBrowser_saveTime->clear();      //清空文本框的内容
    i=1;                                    //重置名次标志位
}

6、最后一个是打点按钮的点击槽函数功能
每按下一次,就在在文本框中显示当前计数时间

void Widget::on_pushButton_point_clicked()
{
    QString string;
    string = "第【" + string.setNum(i++) + "】名:" + time.toString("hh:mm:ss");
    ui->textBrowser_saveTime->append(string);
}

五、源代码下载

QT定时器源代码下载
完结!!!!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:14:05  更:2022-01-04 13:15:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:24:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码