QT qrand()随机函数
在Qt中,生成随机数的函数为 qrand()。该函数是标准C++函数 rand 的线程安全版本。
如果我们仅仅只是调用该函数来生成随机数,那么每次得到的随机数都将是相同的,这是因为Qt生成的随机数严格来说是一个“伪随机”,它的产生是根据随机数种子计算得到的。如果种子相同,那么所得到的随机数也是相同的。因此,为了使我们的随机数看起来更为“随机”一些,我们在每次获取随机数之前都需要初始化一个不同的随机数种子,这就需要用到qsrand()函数,该函数只有一个整型参数,即要设置的随机数种子。
函数原型
void qsrand(uint seed);
int qrand();
QT生成随机数和C语言差距不大,C语言用srand()和rand(),QT是用Qsrand()和qrand();
QT生成随机数的格式是:
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
qrand();
注意:qsrand用来设置一个种子,该种子为qrand生成随机数的起始值。如果不用qsrand设置种子会导致每次运行程序得到的随机数
一样。
例子:
//使用了一个 label 和 pushButton
#include <QTime> //使用了QTime函数
#include <QtGlobal> //qsrand和qrand这两个函数在这里面void Widget::on_pushButton_clicked()
{//在这个示例里,每次点击按钮就在标签显示一个随机数qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); //设置随机数种子int rand = qrand() % 10; //产生十以内的随机数(0-9)ui->label->setText(tr("产生的随机数:%1").arg(rand));}
QT qrand()随机函数相关推荐
- QT qrand()随机函数不随机?
问题 在做一个qt的课程设计时,需要一个产生随机数(四位不同数字的随机数)的方法,查了一下资料发现很简单调用一下qrand()方法即可.确实也能产生随机数但是发现一个bug就是每次重启程序发现每次产生 ...
- Qt工作笔记-使用qrand与QTime产生随机数
程序运行如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class ...
- Qt生成随机数-qrand及QRandomGenerator
//老方法 //利用qrand和qsrand生成随机数 //位于QtGlobal中 //例,生成一个0和10之间的随机数 qsrand(QTime::currentTime().msec()); // ...
- 基于Qt的飞机小游戏实现
目录 前言 一.准备工作 二.基本功能实现 1.主菜单 2.核心玩法 3.其他 资源文件 前言 这是学习Qt时期做的一个小项目,现在看感觉有很多可优化的地方,放在这里给新人朋友们提供一个参考. 一.准 ...
- QT中使用rubberband橡皮筋等方法进行选中多个物体
文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...
- qt 调用离线地图_Qt编写安防视频监控系统25-离线地图
一.前言 离线地图这个功能是近期才完成的,老早以前就很多人问有没有离线地图的功能,之前也大致了解过如何做离线地图,其实最核心的不是代码,而是如何搞到免费的离线地图文件,离线地图下载器网上大部分都是收费 ...
- Qt中多线程间的互斥
文章目录 1 多线程间的互斥 1.1 生产消费者问题 1.2 QMutex 1.3 死锁问题 1.4 信号量 1 多线程间的互斥 值得思考的问题: 多个线程间除了在时序上可能产生依赖,在其它方面是否也 ...
- Qt中的基础图形绘制
文章目录 1 Qt中的基础图形绘制 2 Qt基础图形绘制中的视口和窗口 3 综合实例开发:简易绘图程序 3.1 需求分析 3.2 设计分析 1 Qt中的基础图形绘制 Qt图形系统中的关键角色: QPa ...
- Qt中的QDialog
文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...
最新文章
- 基于epoll实现一个IO多路复用的回声服务器
- 互联网1分钟 | 0307 阿里巴巴与NBA升级中国合作伙伴关系;小米成立AIoT战略委员会...
- 一道关于 json 和 slice 的题难倒了 80% 的人
- Pytorch基础(四)—— 卷积层
- 微软新浏览器_要超越Chrome?微软新发布的这款浏览器,有翻天覆地的变化!
- HDU 1002 大整数
- 吴恩达机器学习视频教程(含课程作业源代码和学习笔记)
- mitmproxy工具使用小红书数据抓取
- linux 系统开启火狐命令_linux安装火狐命令
- 《雅舍谈吃》读书笔记
- win10 开机无法自动连接或重启才能连接WIFI的简单解决方法/2022.03
- 怎么升级计算机配置,旧电脑配置升级攻略,看完再决定要不要配置新电脑
- 物流小程序设计开发的功能明细与方案
- fedora Yum命令
- 关于实习和秋招的准备
- html id claa 命名,Claabiw教师系列.doc
- sql server(MSSQLSERVER)服务不能启动 解决办法
- 单片机c语言 〉〉,PìC单片机C语言编程入门(课件).doc
- 【Ubuntu 22.04】华硕主板 H110I-PLUS 网络唤醒(WOL)设置
- react方面的pdf_React精髓 PDF