随机数与输入值比较逻辑:
1、产生随机数
2、建立按钮信号连接,槽函数获取按钮值
QPushButton *myPtn = (QPushButton *)this->sender();
3、给数据记录append()小于等于2的数据,当等于两个数据时,转换字符为int,并与随机数据进行判断,在等于2的此判断中显示判断结果(字符串数据追加)
4、显示LCDnumber数据
获得一个随机数,以0时0分0秒到现在的秒数为种子,再调用全局的qrand()函数得到一个随机数
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
for(int i=0;i<10;i++){
num = qrand()%100;
qDebug()<<num<<endl;
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void init();
private slots:
void onprogressLCD();
private:
Ui::Widget *ui;
int num;
QString currentNum;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QTime>
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
init();
}
Widget::~Widget()
{
delete ui;
}
void Widget::init()
{
num = 0;
currentNum.clear();
msg.clear();
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
num = qrand()%100;
qDebug()<<num;
connect(ui->ptn_0,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_1,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_2,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_3,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_4,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_5,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_6,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_7,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_8,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
connect(ui->ptn_9,SIGNAL(clicked()),this,SLOT(onprogressLCD()));
}
void Widget::onprogressLCD()
{
QPushButton *myPtn = (QPushButton *)this->sender();
QString myText = myPtn->text();
if(myPtn == NULL)
return;
if(currentNum.length() < 1)
currentNum.append(myText);
else if(currentNum.length() == 1)
currentNum.append(myText);
else if(currentNum.length() == 2){
int v1 = currentNum.toInt();
if(num == v1){
msg.append("猜数正确");
num = qrand()%100;
}
else if(num > v1)
msg.append("输入数据过小");
else
msg.append("输入数据过大");
currentNum.clear();
ui->textEdit->setText(msg);
}
else
currentNum.clear();
ui->lcdNumber->display(currentNum);
}