Qt 一个获得整数的项目(改)

1.项目环境:qt 5.14     win10

2.项目功能:随机整数,累加数据,累减数据

3.运行结果:

 4.Widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QGroupBox>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QDebug>
#include <QRadioButton>
#include <QStackedWidget>
#include <QButtonGroup>
#include <QTime>
#include <QTimer>
#include <QIntValidator>
#include <QMessageBox>
#include <QCompleter>
#include <QSpinBox>
#pragma execution_character_set("utf-8") //支持中文


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    int max_value=10;
    int min_value=0;
    int step_value=1;
    int result=0;
    void create_Widget();
    QPushButton *btn_Execute;


    QRadioButton *radio_Random;
    QRadioButton *radio_Increase;
    QRadioButton *radio_Subtract;
    QButtonGroup *groupButton;

    QLineEdit *qle_out;

    QStackedWidget *stackedWidget;

    QWidget *page_Random;
    QLineEdit *qle_Random_Max;
    QLineEdit *qle_Random_Min;


    QWidget *page_Increase;
    QLineEdit *qle_Increase_Max;
    QLineEdit *qle_Increase_Min;
    QLineEdit *qle_Increase_Step;

    QWidget *page_Subtract;
    QLineEdit *qle_Subtract_Max;
    QLineEdit *qle_Subtract_Min;
    QLineEdit *qle_Subtract_Step;

    void Generate_number();

private slots:
    void on_btn_Execute_clicked();
    void on_radioButton_clicked();
    void onMaxValueChange(QString);
    void onMinValueChange(QString);
    void onStepValueChange(QString);

};
#endif // WIDGET_H

Widget.cpp

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    create_Widget();


    connect(btn_Execute,SIGNAL(clicked(bool)),this,SLOT(on_btn_Execute_clicked()));

    connect(radio_Random,SIGNAL(clicked(bool)),this,SLOT(on_radioButton_clicked()));
    connect(radio_Increase,SIGNAL(clicked(bool)),this,SLOT(on_radioButton_clicked()));
    connect(radio_Subtract,SIGNAL(clicked(bool)),this,SLOT(on_radioButton_clicked()));


    connect(qle_Random_Max,SIGNAL(textChanged(QString)),this,SLOT(onMaxValueChange(QString)));
    connect(qle_Random_Min,SIGNAL(textChanged(QString)),this,SLOT(onMinValueChange(QString)));

    connect(qle_Increase_Max,SIGNAL(textChanged(QString)),this,SLOT(onMaxValueChange(QString)));
    connect(qle_Increase_Min,SIGNAL(textChanged(QString)),this,SLOT(onMinValueChange(QString)));
    connect(qle_Increase_Step,SIGNAL(textChanged(QString)),this,SLOT(onStepValueChange(QString)));

    connect(qle_Subtract_Max,SIGNAL(textChanged(QString)),this,SLOT(onMaxValueChange(QString)));
    connect(qle_Subtract_Min,SIGNAL(textChanged(QString)),this,SLOT(onMinValueChange(QString)));
    connect(qle_Subtract_Step,SIGNAL(textChanged(QString)),this,SLOT(onStepValueChange(QString)));
}

Widget::~Widget()
{
}

void Widget::create_Widget(){
    this->setFixedSize(600,420);

    btn_Execute = new QPushButton(this);
    btn_Execute->setGeometry(50,360,100,30);
    btn_Execute->setText("执行");



    QGroupBox *groupBox = new QGroupBox(tr("请输入参数的值"));
    groupBox->setParent(this);
    groupBox->setGeometry(50,20,500,320);

    radio_Random = new QRadioButton(groupBox);
    radio_Random->setText("随机数据");
    radio_Random->move(50,50);

    radio_Increase = new QRadioButton(groupBox);
    radio_Increase->setText("累加数据");
    radio_Increase->move(50,120);

    radio_Subtract = new QRadioButton(groupBox);
    radio_Subtract->setText("累减数据");
    radio_Subtract->move(50,190);

    groupButton = new QButtonGroup();
    groupButton->addButton(radio_Random,0);
    groupButton->addButton(radio_Increase,1);
    groupButton->addButton(radio_Subtract,2);
    radio_Random->setChecked(true);

    QLabel *label_out = new QLabel(groupBox);
    label_out->setGeometry(200,250,100,30);
    label_out->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    label_out->setText("输出值:");

    qle_out = new QLineEdit(groupBox);
    qle_out->setGeometry(310,250,150,30);
    qle_out->setReadOnly(true);//只做显示禁止编辑


    stackedWidget = new QStackedWidget(groupBox);
    stackedWidget->setGeometry(200,20,280,200);


    page_Random = new QWidget();

    QLabel *lab1 = new QLabel(page_Random);
    lab1->setText("最大值:");
    lab1->setGeometry(20,20,100,30);
    lab1->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Random_Max = new QLineEdit(page_Random);
    qle_Random_Max->setGeometry(130,20,120,30);
    qle_Random_Max->setText(QString::number(max_value));
    QLabel *lab2 = new QLabel(page_Random);
    lab2->setText("最小值:");
    lab2->setGeometry(20,70,100,30);
    lab2->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Random_Min = new QLineEdit(page_Random);
    qle_Random_Min->setGeometry(130,70,120,30);
    qle_Random_Min->setText(QString::number(min_value));


    page_Increase = new QWidget();

    QLabel *lab3 = new QLabel(page_Increase);
    lab3->setText("最大值:");
    lab3->setGeometry(20,20,100,30);
    lab3->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Increase_Max = new QLineEdit(page_Increase);
    qle_Increase_Max->setGeometry(130,20,120,30);
    qle_Increase_Max->setText(QString::number(max_value));
    QLabel *lab4 = new QLabel(page_Increase);
    lab4->setText("最小值:");
    lab4->setGeometry(20,70,100,30);
    lab4->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Increase_Min = new QLineEdit(page_Increase);
    qle_Increase_Min->setGeometry(130,70,120,30);
    qle_Increase_Min->setText(QString::number(min_value));
    QLabel *lab5 = new QLabel(page_Increase);
    lab5->setText("每次加值:");
    lab5->setGeometry(20,120,100,30);
    lab5->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Increase_Step = new QLineEdit(page_Increase);
    qle_Increase_Step->setGeometry(130,120,120,30);
    qle_Increase_Step->setText(QString::number(step_value));



    page_Subtract = new QWidget();
    QLabel *lab6 = new QLabel(page_Subtract);
    lab6->setText("最大值:");
    lab6->setGeometry(20,20,100,30);
    lab6->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Subtract_Max = new QLineEdit(page_Subtract);
    qle_Subtract_Max->setGeometry(130,20,120,30);
    qle_Subtract_Max->setText(QString::number(max_value));
    QLabel *lab7 = new QLabel(page_Subtract);
    lab7->setText("最小值:");
    lab7->setGeometry(20,70,100,30);
    lab7->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Subtract_Min = new QLineEdit(page_Subtract);
    qle_Subtract_Min->setGeometry(130,70,120,30);
    qle_Subtract_Min->setText(QString::number(min_value));
    QLabel *lab8 = new QLabel(page_Subtract);
    lab8->setText("每次减值:");
    lab8->setGeometry(20,120,100,30);
    lab8->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
    qle_Subtract_Step = new QLineEdit(page_Subtract);
    qle_Subtract_Step->setGeometry(130,120,120,30);
    qle_Subtract_Step->setText(QString::number(step_value));


    stackedWidget->addWidget(page_Random);
    stackedWidget->addWidget(page_Increase);
    stackedWidget->addWidget(page_Subtract);


}

void Widget::on_btn_Execute_clicked(){
    Generate_number();
}

void Widget::on_radioButton_clicked(){
    switch (groupButton->checkedId())
    {
    case 0:
        stackedWidget->setCurrentIndex(0);
        qle_Random_Max->setText(QString::number(max_value));
        qle_Random_Min->setText(QString::number(min_value));
        break;
    case 1:
        stackedWidget->setCurrentIndex(1);
        qle_Increase_Max->setText(QString::number(max_value));
        qle_Increase_Min->setText(QString::number(min_value));
        qle_Increase_Step->setText(QString::number(step_value));
        break;
    case 2:
        stackedWidget->setCurrentIndex(2);
        qle_Subtract_Max->setText(QString::number(max_value));
        qle_Subtract_Min->setText(QString::number(min_value));
        qle_Subtract_Step->setText(QString::number(step_value));
        break;
    }

}


void Widget::onMaxValueChange(QString value){
    if(!value.isEmpty()){
        max_value = value.toInt();
    }
}

void Widget::onMinValueChange(QString value){
    if(!value.isEmpty()){
        min_value = value.toInt();
    }
}

void Widget::onStepValueChange(QString value){
   if(!value.isEmpty()){
       step_value = value.toInt();
   }
}

void Widget::Generate_number(){
    switch (groupButton->checkedId())
    {
    case 0:
        qsrand(QTime::currentTime().msec()*qrand()*qrand()*qrand()*qrand()*qrand()*qrand());
        result = qrand()%(max_value-min_value)+min_value;
        qle_out->setText(QString::number(result));
        break;
    case 1:
        result = result+step_value;
        if (result>max_value){
            result = min_value;
        }
        qle_out->setText(QString::number(result));
        break;
    case 2:
        result = result-step_value;
        if (result<min_value){
            result = max_value;
        }
        qle_out->setText(QString::number(result));
        break;
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值