【QT】——定时器QTimer的使用

news2024/11/26 4:41:18

目录

常见的函数

构造函数

获取/设置定时器间隔时间

启动/停止定时器 

信号

设置定时器的时间的两种方法

设置定时器精度

其他函数

静态函数

实例


QTimer是QT框架中的定时器类型,它的使用方法如下:

  1. 定义一个调用QTimer对象,调用start()函数启动定时器,则
  2. 定时器则会周期性的发送一个timeout的信号

常见的函数

构造函数

// 构造函数
// 如果指定了父对象, 创建的堆内存可以自动析构
QTimer::QTimer(QObject *parent = nullptr);

获取/设置定时器间隔时间

// 设置定时器时间间隔为 msec 毫秒
// 默认值是0,一旦窗口系统事件队列中的所有事件都已经被处理完,一个时间间隔为0的QTimer就会触发
void QTimer::setInterval(int msec);
// 获取定时器的时间间隔, 返回值单位: 毫秒
int QTimer::interval() const;

启动/停止定时器 



// 调用 setInterval() 设置时间间隔
[slot] void QTimer::start();
// 启动或重新启动定时器,超时间隔为msec毫秒。
[slot] void QTimer::start(int msec);
// 停止定时器。
[slot] void QTimer::stop();

信号

[signal] void QTimer::timeout();

定时器设置时间的意义:

每消耗该时间间隔,定时器就会发出一个timeout的信号

设置定时器的时间的两种方法

 第一种,直接通过setInterval方式直接设置定时器的时间间隔:

QTiemr t;
t.setInterval(5000);//设置定时器时间间隔
t.start();//启动定时器

第二种,通过start方式设置定时器时间间隔:

QTiemr t;
t.start(5000);//启动定时器

设置定时器精度

// 设置定时器精度
/*
参数: 
    - Qt::PreciseTimer -> 精确的精度, 毫秒级
    - Qt::CoarseTimer  -> 粗糙的精度, 和1毫秒的误差在5%的范围内, 默认精度
    - Qt::VeryCoarseTimer -> 非常粗糙的精度, 精度在1秒左右
*/
void QTimer::setTimerType(Qt::TimerType atype);
Qt::TimerType QTimer::timerType() const;	// 获取当前定时器的精度

其他函数

// 如果定时器正在运行,返回true; 否则返回false。
bool QTimer::isActive() const;

// 判断定时器是否只触发一次
bool QTimer::isSingleShot() const;
// 设置定时器是否只触发一次, 参数为true定时器只触发一次, 为false定时器重复触发, 默认为false
void QTimer::setSingleShot(bool singleShot);

静态函数

调用该静态函数只发送一次timeout信号


/*
功能: 在msec毫秒后发射一次信号, 并且只发射一次
参数:
	- msec:     在msec毫秒后发射信号
	- receiver: 接收信号的对象地址
	- method:   槽函数地址
*/
[static] void QTimer::singleShot(
        int msec, const QObject *receiver, 
        PointerToMemberFunction method);

实例

实现一个时钟,点击开始,则时钟开始运行。 

#include "ui_mainwindow.h"
#include<QTime>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QTimer* t=new QTimer;
    //每个1秒钟发出一个信号
    t->setInterval(1000);
    connect(ui->start_btn,&QPushButton::clicked,this,[=](){
        //启动定时器
        if(t->isActive()){
            t->stop();
            ui->start_btn->setText("开始");
        }
        else{
            t->start();
            ui->start_btn->setText("停止");
        }

    });


    connect(t,&QTimer::timeout,this,[&](){
        //获取当前时间
        QTime t=QTime::currentTime();
        QString s=t.toString("h:m:s");
        ui->time_label->setText(s);
    });
}

MainWindow::~MainWindow()
{
    delete ui;
}

 注意:

QTimer默认的时间是毫秒

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试真题 Python 实现【找出通过车辆最多颜色】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明 一、题目描述 在一个狭小的路口&#xff0c;每秒只能通过一辆车&#xff0c;假如车辆的颜色只有3种&#xff0c;找出n秒内经过的最多颜色的车辆数量。 三种颜色编…

深度学习在Li电池RUL、SOH和电池热管理中的研究进展与应用

公众号&#xff1a;尤而小屋作者&#xff1a;Peter编辑&#xff1a;Peter 大家好&#xff0c;我是Peter~ 今天给大家分享一篇关于深度学习在Li电池RUL、SOH和电池热管理中的研究进展与应用的文献综述。文献基本信息介绍&#xff1a; 本文系统介绍了Deep Learning深度学习的不同…

大厂题第1辑——虚函数七题精讲之3:纯虚函数

什么是纯虚函数&#xff1f;什么是抽象类&#xff1f;纯虚函数可以提供实现吗&#xff1f;有什么意义&#xff1f; 题6-什么是纯虚函数&#xff1f; C中有两种继承&#xff1a;接口继承和实现继承。二者的第一个区别是&#xff1a;基类都干了些什么&#xff1f; 如果基类啥实…

15.2 BP神经网络实现图像压缩——基于BP神经网络的图像压缩(matlab程序)

1.简述 BP神经网络的图像压缩原理 数字图像压缩实际上是以较少的比特数有损或者无损的来表示原来像素矩阵的一种图像处理技术,实际上就是减少图像数据中的时间冗余,空间冗余,频谱冗余等等作为目的,从而同过减少上述的一种或者多种冗余的信息而达到更加高效的存储与传输数据.图…

目标检测的评估指标

Precision(精确率/查准率)&#xff1a;是指在所有被预测为正的样本中&#xff0c;确实是正样本的占比。当Precision越大时&#xff0c;FP越小&#xff0c;此时将其他类别预测为本类别的个数也就越少&#xff0c;可以理解为预测出的正例纯度越高。Precision越高&#xff0c;误检…

LLM驱动的智能体#Mixcopilot的迭代演进

论文&#xff1a; Generative Agents: Interactive Simulacra of Human Behavior shadow 前阵子在一场线下活动&#xff0c;我们展开了对生成式智能体的分享和研讨&#xff0c;同时也介绍了Earth在实现智能体系统的思考和实践。 最近有一篇文章把LLM驱动的智能体的构成讲解的很…

centos7安装图形化界面

一键安装并生效脚本 #!/bin/bash # 安装X(X Window System) yum groupinstall -y "X Window System"# 安装图形界面软件 yum groupinstall -y "GNOME Desktop"# 设置开机进入图形界面 systemctl set-default graphical.target# 进入图形界面 startx安装 …

Windows | [出现错误 2147942402 (0x80070002) (启动“ubuntu2004.exe”时)]

Windows | [出现错误 2147942402 (0x80070002) (启动“ubuntu2004.exe”时)] C:\WINDOWS\system32\wsl.exe -d Ubuntu-20.04

Verilog基本语法之数据类型

Verilog 是一种用于数字逻辑电路设计的硬件描述语言&#xff0c;可以用来进行数字电路的仿真验证、时序分析、逻辑综合。 既是一种行为级&#xff08;可用于电路的功能描述&#xff09;描述语言又是一种结构性&#xff08;可用于元器件及其之间的连接&#xff09;描述语言。 …

深度了解机器人行业全貌

产品分类 机器人主要可分为工业机器人、服务机器人和特种机器人,主要产品如下图所示。 机器人主要分类 资料来源:36氪、华泰证券《机械设备行业专题研究-商用服务机器人:曙光已现蓝海可期-220105》。 其中工业机器人的主要种类及应用领域如下图所示。 工业机器人主要类型及…

docker安装失败 应用程序无法启动,因为应用程序的并行配置不正确

问题描述 报错“应用程序无法启动&#xff0c;因为应用程序的并行配置不正确”。 配置&#xff1a;windows10 解决过程 网上的解决方案有三种&#xff1a; 启动windows服务Windows Modules Installer。运行sxstrace.exe。安装visual c相关依赖。下载visual studio installer…

Python基础 —— 输入输出

〇、概述 当我们编写代码时&#xff0c;必不可少地需要通过敲击键盘来向电脑输入数据&#xff0c;然后显示器将把我们想要的内容显示出来&#xff1b;这其中需要很多复杂的知识&#xff0c;为了简化操作&#xff0c;便有人将其封装成了 print() 和 input() 两个函数。 一、输出…

LiDAR SLAM 闭环——BoW3D论文详解

标题&#xff1a;BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM 作者&#xff1a;Yunge Cui,Xieyuanli Chen,Yinlong Zhang,Jiahua Dong,Qingxiao Wu,Feng Zhu 机构&#xff1a;中科院沈阳自动化研究所 来源&#xff1a;2022 RAL 现算法已经开源&#…

linux查看文件夹的命令

第一种&#xff1a; 最简单的查看方法可以使用ls -ll、ls-lh命令进行查看&#xff0c;当使用ls -ll&#xff0c;会显示成字节大小&#xff0c;而ls- lh会以KB、MB等为单位进行显示&#xff0c;这样比较直观一些。 ls -ll ls -lh 第二种&#xff1a; 通过命令du -h –max-de…

微信小程序视图层莫名出现”竖线“

写完视图层后&#xff0c;发现页面上莫名其妙的出现了一些“竖线”&#xff0c;如下图所示&#xff1a; 这段html代码是这样写的&#xff1a; <view class"other-des"><view class"section"><text class"section-num">{{cou…

服务器财务系统数据库被locked勒索病毒攻击后如何怎么办?如何快速解密恢复数据

在当今的数字化时代&#xff0c;信息安全问题已成为企业面临的重大挑战之一。企业的服务器财务系统数据库是企业最核心的资金管理和财务决策平台&#xff0c;一旦遭受勒索病毒攻击&#xff0c;重要财务数据并被锁定&#xff0c;可能导致严重的经济损失和业务中断。近期&#xf…

企业为什么需要软件的应用框架?

软件框架是可用来构建软件的结构。它充当系统的基础&#xff0c;使开发者不必从头开始创建&#xff0c;比如非必要的额外逻辑。框架还类似于模板&#xff0c;你可以对其进行修改并添加某些特性和更高级功能&#xff0c;然后创建许多人可以使用的复杂而普适的项目。 软件的应用…

python 笔记 math包

abs 绝对值 acos 反余弦函数 acosh 反双曲余弦函数 asin 反正弦函数 asinh 反双曲正弦函数 atan 反正切函数 atanh 反双曲正切函数 cos 余弦函数 cosh 双曲余弦函数 e 自然常数 exp e的几次方 fabs 绝对值 gcd 最大公约数 log log2 log10 modf 取小数、取整数部分 …

gitlab【安装部署、备份与恢复】

【1】安装依赖 [rootgit ~]# yum -y install install curl opessh-server postfix wget【2】安装软件包 [rootgit ~]# yum -y localinstall gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm 【3】修改配置 [rootgit ~]# grep "^[a-Z]" /etc/gitlab/gitlab.rb external_ur…

【爬虫学习】1、利用get方法对豆瓣电影数据进行爬取

♥️作者&#xff1a;白日参商 &#x1f935;‍♂️个人主页&#xff1a;白日参商主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…