【QT】定时器事件应用

news2025/3/15 4:03:33
 public:
 //定时器
    void timerEvent(QTimerEvent *);

  private:
    int id;
#include <QTimerEvent>
//QWidget 默认不追踪鼠标事件
mylabel::mylabel(QWidget *parent) : QLabel(parent)
{
  this->setMouseTracking(true);
    //启动定时器
    //参数1:触发定时器的时间,单位ms
    //参数2:使用默认值
    //返回值:定时器ID
    id = startTimer(100);//通过id来判断是哪一个定时器
}

//定时器
void mylabel::timerEvent(QTimerEvent *)
{
   static int num = 0;
   QString str =  QString("%1,%2").arg("Time out").arg(num++);
   if(num == 100)
   {
       //关闭定时器
       killTimer(id);
   }
   setText(str);
}

在这里插入图片描述

两个定时器实现

由于争抢同一个函数,因此会导致第一个定时器的显示被覆盖掉。

如果想要使用两个定时器,则需要在使用两个label,并且在创建一个类。

在这里插入图片描述

启动两个定时器,因此需要区分是哪一个定时器进到label
if(e->timerId() == id)

在这里插入图片描述

 id = startTimer(100);//通过id来判断是哪一个定时器
id1 = startTimer(100);

}
//定时器
void mylabel::timerEvent(QTimerEvent *e)
{
    QString str;
    //启动两个定时器,因此需要区分是哪一个定时器进到label
    if(e->timerId() == id)
    {

        static int num = 0;
        str =  QString("%1,%2").arg("Time out").arg(num++);
        if(num >= 100)
        {
            //关闭定时器
            killTimer(id);
        }
    }
    if(e->timerId() == id1)
    {
        static int num1 = -100;
         str =  QString("%1,%2").arg("Time out").arg(num1++);
        if(num1 >= 0)
        {
            //关闭定时器
            killTimer(id1);
        }

    }
 setText(str);
}

可以很清楚的看到两个定时器在同时计时,因为在通过一个label中,所以相互覆盖。

在这里插入图片描述

两个定时器示例2(建议使用)

#include <QTimer>
    //第二种定时器用法
    QTimer *timer = new QTimer(this);
    timer->start(100);
    connect(timer,&QTimer::timeout,this,[=](){
        static int number;
        number++;
        this->setText(QString::number(number));
    });

    QTimer *timer1 = new QTimer(this);
    timer1->start(100);
    connect(timer1,&QTimer::timeout,this,[=](){
        static int number=1000;
        number++;
        this->setText(QString::number(number));
    });
timer->stop();
  1. 记录在窗口中停留的事件

  2. 倒计时器

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

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

相关文章

f5——>字符串三角

暴力破解&#xff0c;双层循环&#xff0c;注意复制到新列表用append&#xff0c;这样更不容易出错 格式还是“”.join(str)

本地部署websocket服务端并结合内网穿透实现固定公网地址连接

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

leetcode 3068. 最大节点价值之和【树形dp】

原题链接&#xff1a;3068. 最大节点价值之和 题目描述&#xff1a; 给你一棵 n 个节点的 无向 树&#xff0c;节点从 0 到 n - 1 编号。树以长度为 n - 1 下标从 0 开始的二维整数数组 edges 的形式给你&#xff0c;其中 edges[i] [ui, vi] 表示树中节点 ui 和 vi 之间有一…

二维码门楼牌管理系统应用场景:助力紧急服务

文章目录 前言一、紧急服务部门的传统挑战二、二维码门楼牌管理系统的优势三、实际应用案例分析四、未来展望 前言 随着城市化的快速发展&#xff0c;传统的门牌管理系统已无法满足现代社会的需求。二维码门楼牌管理系统的出现&#xff0c;为紧急服务部门&#xff08;如警察、…

鸿道Intewell-Win_V2.1.3_kyland软件版本发布说明

一、软件发布版本信息 版本号&#xff1a;V2.1.3_kyland 版本发布类型&#xff1a;trail试用版本 二、版本特点 适配 E211-1370&#xff08;J6412,8GB&#xff0c;256GB SSD&#xff09;设备 三、运行环境推荐 Intewell developer可以运行在windows7及windows10 64位 四、支…

精品中国货出海wordpress外贸独立站建站模板

旗袍唐装wordpress外贸网站模板 旗袍、唐装、华服wordpress外贸网站模板&#xff0c;适合做衣服生意的外贸公司官网使用。 https://www.jianzhanpress.com/?p3695 劳动防护wordpress外贸独立站模板 劳动防护wordpress外贸独立站模板&#xff0c;劳动保护、劳动防护用品外贸…

个人博客系列-后端项目-用户验证(5)

介绍 创建系统管理app&#xff0c;用于管理系统的用户&#xff0c;角色&#xff0c;权限&#xff0c;登录等功能&#xff0c;项目中将使用django-rest_framework进行用户认证和权限解析。这里将完成用户认证 用户验证 rest_framework.authentication模块中的认证类&#xff…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题&#xff0c;将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…

怎么做加密文件二维码?分享文件更安全

怎么做一个加密文件二维码&#xff1f;在日常的工作和生活中&#xff0c;通过扫描二维码来查看或者下载文件的方式&#xff0c;被越来越多的人所使用&#xff0c;一方面是二维码的成本低&#xff0c;另一方面有利于提升便捷性和用户体验。 为了保证内容的隐私性和安全性&#…

Linux学习笔记——基本操作命令

目录 一、Shell 命令基础1、Shell 简介2、Shell 命令格式3、显示系统信息命令4、Shell 使用技巧 二、Linux 文件及目录管理1、Linux操作系统的目录结构2、文件及目录显示类命令3、文件及目录操作类命令4、文件内容的显示和处理5、文件查找类命令 三、vi、vim 编辑器的使用四、文…

以太网帧格式

以太网帧格式 以太网帧格式前导码&#xff08;Preamble&#xff09;帧起始界定符&#xff08;SFD&#xff0c;Start Frame Delimiter&#xff09;以太网帧头目的MAC地址源MAC地址长度/类型 数据段帧检验序列&#xff08;FCS&#xff0c;Frame Check Sequence&#xff09;帧间隙…

Vue全家桶:vue2+vue3全部搞懂:第八篇,重要!正式工程化项目开发——开始怎么写代码

前提&#xff0c;建议先学会前端几大基础&#xff1a;HTML、CSS、JS、Ajax&#xff0c;不然不好懂 这一专栏知识将一次性将vue、vue2、vue3全部讲明白 这一篇内容蛮多&#xff0c;我本人也打算加快学习速度&#xff0c;于是下面大量解释将出自于黑马程序员的视频课堂截图&…

Java面试篇【RabbitMQ】常见面试题(2024最新)

RabbitMQ 1.为什么使用MQ?优点是什么 因为MQ可以异步处理&#xff0c;提高系统吞吐量。 应用解耦&#xff0c;系统之间可以通过消息通信&#xff0c;不关心其他系统的处理。 流量削峰&#xff0c;可以通过消息队列的长度&#xff0c;控制请求量。可以缓解短时间内的高并发请…

热插拔更换ESXI宿主机系统硬盘导致紫屏故障案例一则

关键词 vmware、esxi5.5raid、热插拔、紫屏 华为 CH121V3刀片、SSD硬盘 There are many things that can not be broken&#xff01; 如果觉得本文对你有帮助&#xff0c;欢迎点赞、收藏、评论&#xff01; 一、问题现象 现网vmware云平台一台华为E9000刀箱CH121V3刀片服务…

16-Java命令模式 ( Command Pattern )

Java命令模式 摘要实现范例 命令模式&#xff08;Command Pattern&#xff09;中请求以命令的形式包裹在对象中&#xff0c;并传给调用对象 调用对象寻找可以处理该命令的合适的对象&#xff0c;并把该命令传给相应的对象&#xff0c;该对象执行命令 命令模式是行为型模式&…

面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。

写在开头 昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上&#xff0c;我问他怎么回答的&#xff0c;他说自己有背过八股文&#xff0c;回答了&#xff1a;继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种&#xff0c;但是面试官让说…

艺术与科技的结合,AI绘画图生图怎么样?

AI绘画图生图是指通过人工智能技术生成的具有艺术价值的图像。它可以根据用户提供的参考图像或描述&#xff0c;自动生成具有艺术风格的新图像。这些图像可以是风景、人物、抽象画等各种形式。那么ai绘画图生图到底怎么样&#xff1f; AI绘画图生图的优点在于它可以快速、高效地…

产品展示型wordpress外贸网站模板

孕婴产品wordpress外贸网站模板 吸奶器、待产包、孕妇枕头、护理垫、纸尿裤、孕妇装、孕婴产品wordpress外贸网站模板。 https://www.jianzhanpress.com/?p4112 床品毛巾wordpress独立站模板 床单、被套、毛巾、抱枕、靠垫、围巾、布艺、枕头、乳胶枕、四件套、浴巾wordpre…

【学习】DenseNet

DenseNet介绍 DenseNet模型的基本思路与ResNet一致&#xff0c;但它建立的是前面所有层与后面层的密集连接&#xff08;即相加变连结&#xff09;&#xff0c;它的名称也是由此而来。DenseNet的另一大特色是通过特征在通道上的连接来实现特征重用。这些特点让DenseNet的参数量…

C# CallerMemberName、CallerFilePath、CallerLineNumber

CallerMemberName&#xff1a;调用某个方法的主方法名称 CallerFilePath&#xff1a;调用某个方法的主方法所在的类文件地址 CallerLineNumber&#xff1a;调用这个方法所在的行号 用这三个附加属性&#xff0c;需要设置默认值。