定时器(QTimer)与随机数生成器(QRandomGenerator)的应用实践——Qt(C++)

一、QTimer与QRandomGenerator

(一)QTimer(定时器)[2]

        QTimer类为定时功能提供了一个高级编程接口。在使用QTimer时,实例化一个QTimer对象并将其timeout()发射信号与合适的信号槽相连接。通过调用QTimer的start()函数开启定时器,QTimer实例对象将会在固定时间间隔后发送timeout()信号。

        定时器的精度取决于底层操作系统和硬件,大多数平台支持1毫秒的时间分辨率。尽管在许多实际情况下,定时器的精度并不会等于1毫秒的时间分辨率。QTimer支持三种定时器类型,精确定时器(Precise Timer)、粗略定时器(Coarse Timer)和非常粗略定时器(VeryCoarse Timer)。

定时器的一些应用[3-4]

1. 定时任务。例如,固定间隔时间自动保存用户数据、固定间隔时间检查网络连接状态等;

2. 动画效果。通过调整定时器的间隔时间设定和目标动画的状态(比如不同图像、图像颜色和图像透明度等)切换方式来实现各种各样的动画效果;

3. 延时执行。经过一段间隔时间后再执行目标操作;

4. 精确控制定时器的精度。通过设置定时器的类型以对定时器的精度和资源消耗之间做出权衡。

(二)QRandomGenerator(随机数生成器)[2]

        QRandomGenerator主要用于从高质量的随机数生成器中生成随机数值。与C++随机数生成引擎一样,可以根据用户种子数值来构造QRandomGenerator实例对象,相同的种子数值会生成相同的数值序列,不同的种子数值会生成差异巨大的数值序列。

二、应用实践案例——简易时钟

实验环境配置:

Qt编译器版本:Desktop Qt 5.15.2 MSVC2019 64bit

Visual Studio编程平台:VS2019

(一)效果展示

(二)关键代码

// 定时器的实例化与信号连接
timer = new QTimer(this);
connect(timer, &QTimer::timeout,this,&MainWindow::timerUpdate);// 定时器的启动与结束
timer->start(1000);
timer->stop();// 图片随机播放(图片名称为dog1.jpg开始)
// mytimer为创建Qt的项目名称
int rand = QRandomGenerator::global()->bounded(5);  // 产生5以内随机整数即0-4
QPixmap pix = QPixmap(QString("../mytimer/res/dog%1.jpg").arg(rand+1));
ui->label->setPixmap(pix.scaled(ui->label->size(), Qt::IgnoreAspectRatio));

参考资料:

[1] Qt 6 C++开发指南 / 王维波,栗宝鹃,侯春望著.—北京:人民邮电出版社,2023.1.

[2] Assistant 5.15.2 (MSVC 2019 64-bit)-Qt::ConnectionType(Qt使用文档助手)

[3] 深入理解Qt定时器:QTimer的魅力与挑战(一)-阿里云开发者社区 (aliyun.com)

[4] 深入理解Qt定时器:QTimer的魅力与挑战(二)-阿里云开发者社区 (aliyun.com)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

翼鸥教育:从OceanBase V3.1.4 到 V4.2.1,8套核心集群升级实践

引言:自2021年起,翼鸥教育便开始应用OceanBase社区版,两年间,先后部署了总计12套生产集群,其中核心集群占比超过四分之三,所承载的数据量已突破30TB。自2022年10月,OceanBase 社区发布了4.2.x 版…

AI绘画经验(stable-diffusion)

提示词理解 总的 AI绘画的优点是【想象力】,而不是自然语言的精确描述。 AI绘画只能控制【主体】和【风格】,姿势,表情,装饰,手指都太过于详细了。这也是【人类画师的魅力】 准确描述是徒劳的,只能通过【…

使用支付宝沙箱完成商品下单

使用支付宝沙箱完成商品下单 一:效果展示: 二:代码实现 1:准备工作: 申请支付宝沙箱账户: 登录 - 支付宝 然后要下载密钥密钥工具来生成密钥; 2:流程分析: 先是用户…

Linux设置socks代理

公司里绝大多数主机已经禁止外网访问,仅保留一台主机设置socks作为代理服务器。如下为对socks这一概念的学习整理 什么是socks 是OSI模型下会话层的协议,位于表示层与传输层之间,作用是: exchanges network packets between a c…

以往运维岗本人面试真题分享

以下是本人面试运维岗的一些面试经历,在此做个记录分享 目录 TCP/IP三次握手 IPtables IPtables四表五链都是什么? nat端口如何做? 开放本机的80端口该如何做? 如何在单用户模式下引导Centos? nginx轮询模式都有…

【Hadoop实训】Hive 数据操作①

目录 一、准备文件 1、创建表 2、 数据映射 二、HIVE的数据操作 1、基本查询 a、全表查询 b、选择特定字段查询 c、查询员工表总人数 d、查询员工表总工资额 e、查询5条员工表的信息 2、Where条件查询 a、查询工资等于5000的所有员工 b、查询工资在500到1000的员工信息 …

3.5【数据库系统】ER图

2、实体之间的关系 下面主要针对两个实体间的关系进行介绍 (a)一对一联系(1:1)如班级和班长,一个班级只有一个班长,一个班长只能在一个班级任职。 (b)一对多联系(1&#…

笔记 | image may have poor performance,or fail,if run via emulation

在Docker Desktop中现象如图: 当你运行 AMD64 平台代码时(Intel 和 AMD 芯),你的 Mac 必须模拟其CPU架构(因为你自身是ARM)。这通常会非常吃性能。 Docker Desktop 警告你在模拟 Intel/AMD x64 CPU 时性能可…

想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)

各位小伙伴们大家好~ 不知道各位同学在科研过程中是否有这样的苦恼 电脑无显卡。难不成我要用CPU跑实验吗?救救我吧电脑显卡算力太低。训练过程慢慢慢慢慢,等半天都出不来结果电脑显卡显存不够,batchsize稍微高一点点,就要爆显存…

Linux相关习题-gcc-gdb-冯诺依曼

1.将一个test.c文件仅仅进行汇编而不生成可执行程序的命令是? A.gcc -S test.c B.gcc -E test.c C.gcc -c test.c D.gcc test.c gcc常见选项: -c 汇编完成后停止,不进行链接 -E 预处理完成后停止,不进行编译 -S 编译完成后停止…

计算机毕业设计必看必学35755flask旅游景区热度可视化平台原创定制程序,java、PHP、python、小程序、文案全套、毕设成品等

flask旅游景点热度可视化平台 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游景点热度…

Hadoop(环境搭建篇)

这里我用的是ubnatu22.4的系统,请大家严格按照这个系统来安装 一、网络设置 1、打开虚拟机的编辑,并选择虚拟网络编辑器 2、点击更改设置 3、更改IP 二、更改主机名 1、打开终端 2、输入以下命令 hostnamectl set-hostname master 3、然后关闭终端在…

Java 堆内存管理详解:`-Xms` 和 `-Xmx` 参数的使用与默认内存设置

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)

1.Linux的背景介绍 Linux 操作系统的发展历程充满了激情与创新喵~🎀 萌芽期 (1983 - 1991):Linux 的历史可追溯到 1983 年,理查德斯托曼 (Richard Stallman) 发起 GNU 计划,目标是创建一个自由软件操作系统。1987 年发…

AI写作(二)NLP:开启自然语言处理的奇妙之旅(2/10)

一、NLP 的基本概念与任务 (一)自然语言处理的研究对象 自然语言处理(NLP)处于计算机科学、人工智能和语言学的交叉领域。它所聚焦的人类社会语言信息是无比丰富和复杂的,包括口语、书面语等各种形式。这种语言信息在…

使用CubeMX一键配置Freertos

一、配置参数 1.1 API信息 1.2 版本信息 版本信息 FreeRTOS版本为10.3.1 CMSIS-RTOS 版本为2.00 如果我们不用CubeMX配置的话 还是推荐移植正点原子的,因为它的裁剪头文件比较清晰 就是那个conf的头文件,一键配置的话很方便。可能会跟原版移植的Freert…

如何提高自动驾驶中惯性和卫星组合导航pbox的精度?

Mems纯惯导里程推算精度做到千分之一,两分钟航向精度保持0.001弧度,是如何做到的? 【飞迪sigma车规高精度组合导航系统在3.6km长隧道下穿测试,135s纯惯导航向保持精度小于0.06度,隧道内转弯轨迹和直线航位推算重合#智能…

10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!

在如今的时代,PDF文件已经成为我们工作、学习和生活中不可或缺的一部分。但是,当遇到一些非母语或陌生语言的PDF文档时,这要怎么办呀!这时候翻译工具就显得尤为重要了。这也是我所遇到过的难题,现在我将与大家分享几款…

MySQL_第13章_视图

1. 常见的数据库对象 2. 视图概述 2.1 为什么使用视图? 视图一方面可以使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。 2.2 视图的理解 视图是一种虚拟表,本身是不具有数据的,占用很少的内存…

【测试框架篇】单元测试框架pytest(1):环境安装和配置

一、pytest简介 Pytest是Python的一种单元测试框架,与Python自带的unittest测试框架类似,但是比 unittest框架使用起来更简洁,效率更高。 二、pytest特点 Pytest是一个非常成熟的Python测试框架,主要特点有以下几点: 非常容易…