Qt生成随机数的方法记录

Qt 生成随机数 qsrand qrandicon-default.png?t=N7T8https://www.cnblogs.com/ybqjymy/p/13424788.html

在QT中有两个相关函数(位于QtGlobal中,QApplication中也包含)

void qsrand(uint seed)

int qrand()

首先是利用当前系统时间作为种子初始化函数

(需要#include<QTime>)

qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
qsrand(QTime::currentTime().msec());

(这一步容易导致隐式类型转换警告“implict conversion change signedness”)

然后是生成随机数输出的函数

int random_number = qrand();

qrand()理论上返回0(若无随机数种子)到RAND_MAX(系统默认值)间的任意值

该种子作为qrand生成随机数的起始值,RAND_MAX为缺省值,即随机数在种子值到最大值之间

可以利用取余运算%来控制随机数范围

如果要返回0~n间的任意整数值,则为:qrand()%n

如果要返回a~b间的任意整数值,则为:a+qrand()%(b-a)

Qt生成随机数-qrand及QRandomGenerator_tgtsml的博客-CSDN博客_qrandomicon-default.png?t=N7T8https://blog.csdn.net/time_forget/article/details/92794286利用QRandomGenerator类(Qt5.10之后新增该类)

需要#include<QRandomGenerator> 

qDebug()<<QRandomGenerator::global()->bounded(10); //生成一个0和10之间的整数
qDebug()<<QRandomGenerator::global()->bounded(10.123); //生成一个0和10.123之间的浮点数
qDebug()<<QRandomGenerator::global()->bounded(10, 15); //生成一个10和15之间的整数

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
。好的,这是一个关于 PyQt5 的编程问题,我可以提供一些帮助。 以下是一个简单的 PyQt5 程序,可以实现您所需的功能: ```python import sys import random from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QLabel, QLineEdit, QTextEdit, QPushButton class RandomNumGenerator(QWidget): def __init__(self): super().__init__() # 设置窗口属性 self.setWindowTitle('Random Number Generator') self.resize(600, 400) # 创建控件 self.left_label = QLabel('Settings') self.right_label = QLabel('Results') self.left_top_label = QLabel('Generate a random number:') self.left_top_edit = QLineEdit() self.left_bottom_label = QLabel('History') self.left_bottom_edit = QTextEdit() self.generate_button = QPushButton('Generate') self.show_button = QPushButton('Show History') # 添加控件到窗口 self.layout = QHBoxLayout(self) self.left_layout = QVBoxLayout() self.right_layout = QVBoxLayout() self.left_top_layout = QHBoxLayout() self.left_bottom_layout = QHBoxLayout() self.left_top_layout.addWidget(self.left_top_label) self.left_top_layout.addWidget(self.left_top_edit) self.left_bottom_layout.addWidget(self.left_bottom_label) self.left_bottom_layout.addWidget(self.left_bottom_edit) self.left_layout.addWidget(self.left_label) self.left_layout.addLayout(self.left_top_layout) self.left_layout.addWidget(self.generate_button) self.left_layout.addLayout(self.left_bottom_layout) self.right_layout.addWidget(self.right_label) self.right_layout.addWidget(self.show_button) self.layout.addLayout(self.left_layout) self.layout.addLayout(self.right_layout) # 添加事件处理 self.generate_button.clicked.connect(self.generate) self.show_button.clicked.connect(self.show_history) # 初始化历史记录列表 self.history = [] def generate(self): """生成随机数""" num = random.randint(1, 100) self.left_top_edit.setText(str(num)) self.history.append(num) def show_history(self): """显示历史记录""" text = '' for num in self.history: text += str(num) + '\n' self.left_bottom_edit.setText(text) # 运行程序 if __name__ == '__main__': app = QApplication(sys.argv) window = RandomNumGenerator() window.show() sys.exit(app.exec_()) ``` 这个程序可以实现一个带有左右两个分区的窗口,左边分区包含一个文本框和一个按钮,右分区包含一个文本框和一个按钮。 在左上角的文本框中输入一个数字,然后单击“生成”按钮,程序会在右侧文本框中显示一个随机数。每次单击“生成”按钮,程序会将生成的随机数添加到历史记录列表中。 当单击“显示历史记录”按钮时,程序会将历史记录列表中的所有数字显示在左下角的文本框中。 我希望这个例子能够对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值