[Solved]How to generate random number between two numbers? Qt
-
You can use the cstdlib.
See: "cplusplus-doc":http://www.cplusplus.com/reference/cstdlib/rand/
-
Example:
MainWindow.h
@
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();private slots:
void on_pushButton_clicked();private:
Ui::MainWindow *ui;
int High;
int Low;
};
@MainWindow.cpp
@
#include "MainWindow.h"
#include "ui_MainWindow.h"
#include <qglobal.h>MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
High = 10;
Low = 5;
}MainWindow::~MainWindow()
{
delete ui;
}void MainWindow::on_pushButton_clicked()
{
qsrand(qrand());
ui->lineEdit->setText(QString::number(qrand() % ((High + 1) - Low) + Low));
}
@ -
Note that qrand produces pseudo-random number only. You do want to use something better for e.g. crypto operations.
-
modern Qt c++ 11
#include <random> #include "QDateTime" int getRand(int min, int max){ unsigned int ms = static_cast<unsigned>(QDateTime::currentMSecsSinceEpoch()); std::mt19937 gen(ms); std::uniform_int_distribution<> uid(min, max); return uid(gen); }
-
Or modern Qt: https://doc.qt.io/qt-5/qrandomgenerator.html :)