IMX6学习记录(27)-使用QT实现一个计算器

上面是我的微信和QQ群,欢迎新朋友的加入。

参考链接:https://blog.youkuaiyun.com/qq_41068877/article/details/82626823

1.创建一个计算器的界面

2.源码

创建一个CPP文件和H文件

Cpp源码

#include "model.h"

model::model()
{

}

void model::setNum1(int num)
{
    num1 = num;
}
void model::setNum2(int num)
{
    num2 = num;
}

void model::setFlag(QString flag)
{
    this->flag = flag;
}

int model::doExpr()
{
    int result = 0;
    if(flag == "+")
        result = num1+num2;
    else if(flag == "-")
        result = num1-num2;
    else if (flag == "*")
        result = num1*num2;
    else if(flag == "/")
    {
        if(num2 == 0)
            return -1;
        else
            result = num1 / num2;
    }

    return result;

}

H文件源码


#ifndef MODEL_H
#define MODEL_H
#include<QString>

class model
{
public:
    model();
    //设置数字
    void setNum1(int num);
    void setNum2(int num);
    //设置符号
    void setFlag(QString flag);
    //计算
    int doExpr();
private:
    //用于计算的2个数字num1,num2,符号flag
    int num1;
    int num2;
    QString flag;

};

#endif // MODEL_H

在界面上,操作按钮之后,数据或者数学运算是给到这里的

界面头文件源码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include"model.h"
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_34_clicked();

    void on_pushButton_38_clicked();

    void on_pushButton_13_clicked();

    void on_pushButton_33_clicked();

    void on_pushButton_37_clicked();

    void on_pushButton_30_clicked();

    void on_pushButton_32_clicked();

    void on_pushButton_36_clicked();

    void on_pushButton_35_clicked();

    void on_pushButton_42_clicked();

    void on_pushButton_41_clicked();

    void on_pushButton_40_clicked();

    void on_pushButton_43_clicked();

    void on_pushButton_31_clicked();

    void on_pushButton_39_clicked();

private:
    Ui::MainWindow *ui;
    QString tmp;
    int num;
    model * model1;
};

#endif // MAINWINDOW_H

界面源码

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    model1 = new model;
    ui->setupUi(this);
    tmp = "";
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    tmp +="7";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_34_clicked()
{
    tmp +="8";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_38_clicked()
{
    tmp +="9";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_13_clicked()
{
    tmp +="4";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_33_clicked()
{
    tmp +="5";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_37_clicked()
{
    tmp +="6";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_30_clicked()
{
    tmp +="1";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_32_clicked()
{
    tmp +="2";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_36_clicked()
{
    tmp +="3";
    this->ui->textEdit->setText(tmp);
}

void MainWindow::on_pushButton_35_clicked()
{
    if(tmp != "")
    {
        tmp +="0";
        this->ui->textEdit->setText(tmp);
    }
}

void MainWindow::on_pushButton_42_clicked()
{
    num = tmp.toInt();
    model1->setNum1(num);
    tmp = "";
    QString ex = "+";
    model1->setFlag(ex);
}

void MainWindow::on_pushButton_41_clicked()
{
    num = tmp.toInt();
    model1->setNum1(num);
    tmp = "";
    QString ex = "-";
    model1->setFlag(ex);
}

void MainWindow::on_pushButton_40_clicked()
{
    num = tmp.toInt();
    model1->setNum1(num);
    tmp = "";
    QString ex = "*";
    model1->setFlag(ex);
}

void MainWindow::on_pushButton_43_clicked()
{
    num = tmp.toInt();
    model1->setNum1(num);
    tmp = "";
    QString ex = "/";
    model1->setFlag(ex);
}

void MainWindow::on_pushButton_31_clicked()
{
    ui->textEdit->clear();
}

void MainWindow::on_pushButton_39_clicked()
{
    num = tmp.toInt();
    model1->setNum2(num);
    int res = model1->doExpr();

    QString ab = QString::number(res);
    ui->textEdit->setText(ab);
    tmp = "";
}

3.在PC端测试

输入9*9

4.在板子上测试

输入6*7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值