在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()随机函数相关推荐

  1. QT qrand()随机函数不随机?

    问题 在做一个qt的课程设计时,需要一个产生随机数(四位不同数字的随机数)的方法,查了一下资料发现很简单调用一下qrand()方法即可.确实也能产生随机数但是发现一个bug就是每次重启程序发现每次产生 ...

  2. Qt工作笔记-使用qrand与QTime产生随机数

    程序运行如下: 代码如下: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class ...

  3. Qt生成随机数-qrand及QRandomGenerator

    //老方法 //利用qrand和qsrand生成随机数 //位于QtGlobal中 //例,生成一个0和10之间的随机数 qsrand(QTime::currentTime().msec()); // ...

  4. 基于Qt的飞机小游戏实现

    目录 前言 一.准备工作 二.基本功能实现 1.主菜单 2.核心玩法 3.其他 资源文件 前言 这是学习Qt时期做的一个小项目,现在看感觉有很多可优化的地方,放在这里给新人朋友们提供一个参考. 一.准 ...

  5. QT中使用rubberband橡皮筋等方法进行选中多个物体

    文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...

  6. qt 调用离线地图_Qt编写安防视频监控系统25-离线地图

    一.前言 离线地图这个功能是近期才完成的,老早以前就很多人问有没有离线地图的功能,之前也大致了解过如何做离线地图,其实最核心的不是代码,而是如何搞到免费的离线地图文件,离线地图下载器网上大部分都是收费 ...

  7. Qt中多线程间的互斥

    文章目录 1 多线程间的互斥 1.1 生产消费者问题 1.2 QMutex 1.3 死锁问题 1.4 信号量 1 多线程间的互斥 值得思考的问题: 多个线程间除了在时序上可能产生依赖,在其它方面是否也 ...

  8. Qt中的基础图形绘制

    文章目录 1 Qt中的基础图形绘制 2 Qt基础图形绘制中的视口和窗口 3 综合实例开发:简易绘图程序 3.1 需求分析 3.2 设计分析 1 Qt中的基础图形绘制 Qt图形系统中的关键角色: QPa ...

  9. Qt中的QDialog

    文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...

最新文章

  1. 基于epoll实现一个IO多路复用的回声服务器
  2. 互联网1分钟 | 0307 阿里巴巴与NBA升级中国合作伙伴关系;小米成立AIoT战略委员会...
  3. 一道关于 json 和 slice 的题难倒了 80% 的人
  4. Pytorch基础(四)—— 卷积层
  5. 微软新浏览器_要超越Chrome?微软新发布的这款浏览器,有翻天覆地的变化!
  6. HDU 1002 大整数
  7. 吴恩达机器学习视频教程(含课程作业源代码和学习笔记)
  8. mitmproxy工具使用小红书数据抓取
  9. linux 系统开启火狐命令_linux安装火狐命令
  10. 《雅舍谈吃》读书笔记
  11. win10 开机无法自动连接或重启才能连接WIFI的简单解决方法/2022.03
  12. 怎么升级计算机配置,旧电脑配置升级攻略,看完再决定要不要配置新电脑
  13. 物流小程序设计开发的功能明细与方案
  14. fedora Yum命令
  15. 关于实习和秋招的准备
  16. html id claa 命名,Claabiw教师系列.doc
  17. sql server(MSSQLSERVER)服务不能启动 解决办法
  18. 单片机c语言 〉〉,PìC单片机C语言编程入门(课件).doc
  19. 【Ubuntu 22.04】华硕主板 H110I-PLUS 网络唤醒(WOL)设置
  20. react方面的pdf_React精髓 PDF

热门文章

  1. 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的操作方法
  2. 模仿百度校园招聘流程【HTML】
  3. MT4/5 财经新闻 推送
  4. 八大排序(Java完整版)
  5. 也一定无法演奏好莫扎特的曲子
  6. “寻梦之路 阿里之行”北城大数据学院学生代表团赴北京阿里中心参观
  7. js代码实现录音上传
  8. Alex各层卷积计算详解
  9. 学习Shell的经典好书推荐
  10. Python入门基础学习笔记