qt.creator实现计算器

1.首先需要建立一个不需要工具箱的界面

第一步:创建一个模板

 第二步:

第三步:选择QDialog,选择这个将会在界面不会出现工具箱,即界面上方横线

 

 2.头文件代码

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include<QString>
namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    double add(double val0,double val1);
    double sub(double val0,double val1);
    double mul(double val0,double val1);
    double div(double val0,double val1);
    ~Dialog();

private slots:

    void on_pushButton_5_clicked();

    void on_pushButton_8_clicked();

    void on_pushButton_9_clicked();

    void on_pushButton_4_clicked();

    void on_pushButton_6_clicked();

    void on_pushButton_7_clicked();

    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_14_clicked();

    void on_pushButton_10_clicked();

    void on_pushButton_11_clicked();

    void on_pushButton_12_clicked();

    void on_pushButton_13_clicked();

    void on_pushButton_15_clicked();

    void on_pushButton_16_clicked();

    void on_pushButton_17_clicked();

    void on_pushButton_18_clicked();

private:
    Ui::Dialog *ui;
};

#endif // DIALOG_H

槽函数由系统自动生成,可双击界面文件进入,选择需要的东西,转到槽函数

 3.  .cpp文件

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
}

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

void Dialog::on_pushButton_5_clicked()
{
    ui->lineEdit->insert("1");
}

void Dialog::on_pushButton_8_clicked()
{
    ui->lineEdit->insert("2");
}

void Dialog::on_pushButton_9_clicked()
{
    ui->lineEdit->insert("3");
}

void Dialog::on_pushButton_4_clicked()
{
    ui->lineEdit->insert("4");
}

void Dialog::on_pushButton_6_clicked()
{
    ui->lineEdit->insert("5");
}

void Dialog::on_pushButton_7_clicked()
{
    ui->lineEdit->insert("6");
}

void Dialog::on_pushButton_clicked()
{
    ui->lineEdit->insert("7");
}

void Dialog::on_pushButton_2_clicked()
{
    ui->lineEdit->insert("8");
}

void Dialog::on_pushButton_3_clicked()
{
    ui->lineEdit->insert("9");
}

void Dialog::on_pushButton_14_clicked()
{
    ui->lineEdit->insert("0");
}

void Dialog::on_pushButton_10_clicked()
{
    ui->lineEdit->insert("+");
}

void Dialog::on_pushButton_11_clicked()
{
    ui->lineEdit->insert("-");
}

void Dialog::on_pushButton_12_clicked()
{
    ui->lineEdit->insert("*");
}

void Dialog::on_pushButton_13_clicked()
{
    ui->lineEdit->insert("/");
}

void Dialog::on_pushButton_18_clicked()
{
    ui->lineEdit->insert(".");
}

void Dialog::on_pushButton_16_clicked()
{
    ui->lineEdit->backspace();
}

void Dialog::on_pushButton_17_clicked()
{
    ui->lineEdit->clear();
}

void Dialog::on_pushButton_15_clicked()
{
    Dialog cal;
    QString val;
    val = ui->lineEdit->text();//拿到存在lineEdit的字符串
    if(val.isEmpty())//判断函数是否为空
    {
        return ;
    }
    if(val.indexOf("+")!=-1)//用indexOf的方法找到“+”
    {
        double i,h,j,k;
        i = val.indexOf("+");//找出加号的下标
        h = val.leftRef(i).toDouble();//找到加号左边的数字
        j = val.rightRef(val.size() - i).toDouble();//找到加号右边的数字
        k = cal.add(h,j);//调用加法函数
        ui->lineEdit->setText(QString::number(k));//将结果输出
    }

    if(val.indexOf("-")!=-1){
        double i,h,j,k;
        i = val.indexOf("-");
        h = val.leftRef(i).toDouble();
        i++;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.sub(h,j);
        ui->lineEdit->setText(QString::number(k));
    }

    if(val.indexOf("*")!=-1){
        double i,h,j,k;
        i = val.indexOf("*");
        h = val.leftRef(i).toDouble();
        ++i;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.mul(h,j);
        ui->lineEdit->setText(QString::number(k));
    }

    if(val.indexOf("/")!=-1){
        double i,h,j,k;
        i = val.indexOf("/");
        h = val.leftRef(i).toDouble();
        ++i;
        j = val.rightRef(val.size() - i).toDouble();
        k = cal.div(h,j);
        ui->lineEdit->setText(QString::number(k));
    }

}
double Dialog::add(double val0, double val1)
{
    return val0+val1;
}
double Dialog::sub(double val0, double val1)
{
    return val0-val1;
}
double Dialog::mul(double val0, double val1)
{
    return val0*val1;
}
double Dialog::div(double val0, double val1)
{
    return val0/val1;
}






4.计算机界面

由上述步骤即可实现

猜你喜欢

转载自blog.csdn.net/m0_74889801/article/details/128840245