计算器-QT界面编程

程序界面:
程序界面

//main.cpp
#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])

{
    QApplication::addLibraryPath("./plugins");//设置DLL文件目录
    QApplication a(argc, argv);
    MainWindow w;
    w.show();//显示
    return a.exec();
}
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    num1=num2="0";//初始化操作数1,2的值
    fuhao=' ';//初始化符号值为空
    this->setFixedSize(414,280);//固定窗口大小
    ui->lineEdit->setAlignment(Qt::AlignRight);//面板设置右对齐
    ui->lineEdit->setFixedSize(260,25);//面板初始化大小
    ui->lineEdit->setText("0.000");//面板初始化
    ui->lineEdit->setFont(QFont("Timers" , 15 ,  QFont::Bold));//面板字体及大小
    ui->lineEdit_2->setAlignment(Qt::AlignRight);//面板设置右对齐
    ui->lineEdit_2->setFixedSize(260,25);//面板初始化大小
    ui->lineEdit_2->setText("0.000");//面板初始化
    ui->lineEdit_2->setFont(QFont("Timers" , 15 ,  QFont::Bold));//面板字体及大小
    //QMessageBox::warning(NULL, "注意", "本计算器仅能进行二则计算!");//消息框
}

MainWindow::~MainWindow()//析构函数
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()//数字1~9
{
    s+="1";//更新字符串s
    if(num2=="0")//
    {
        num2="1";
    }
    else
    {
        num2.append('1');//连续点击同一按钮,追加字符 1
    }
    ui->lineEdit->setText(s);//显示字符串s的内容
}

void MainWindow::on_pushButton_2_clicked()
{
    s+="2";
    if(num2=="0")
    {
        num2="2";
    }
    else
    {
        num2.append('2');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_3_clicked()
{
    s+="3";
    if(num2=="0")
    {
        num2="3";
    }
    else
    {
        num2.append('3');
    }
    ui->lineEdit->setText(s);
}


void MainWindow::on_pushButton_4_clicked()
{
    s+="4";
    if(num2=="0")
    {
        num2="4";
    }
    else
    {
        num2.append('4');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_5_clicked()
{
    s+="5";
    if(num2=="0")
    {
        num2="5";
    }
    else
    {
        num2.append('5');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_6_clicked()
{
    s+="6";
    if(num2=="0")
    {
        num2="6";
    }
    else
    {
        num2.append('6');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_7_clicked()
{
    s+="7";
    if(num2=="0")
    {
        num2="7";
    }
    else
    {
        num2.append('7');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_8_clicked()
{
    s+="8";
    if(num2=="0")
    {
        num2="8";
    }
    else
    {
        num2.append('8');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_9_clicked()
{
    s+="9";
    if(num2=="0")
    {
        num2="9";
    }
    else
    {
        num2.append('9');
    }
    ui->lineEdit->setText(s);
}

void MainWindow::on_pushButton_15_clicked()//数字0
{
    s+="0";
    if(num2=="0")
    {
        num2="0";
    }
    else
    {
        num2.append('0');
    }
    ui->lineEdit->setText(s);
}
void MainWindow::on_pushButton_10_clicked()//+
{
    double a,b;
    s+="+";
    ui->lineEdit->setText(s);
    if(fuhao==' ')
    {
        num1=num2;
        num2="0";
        fuhao='+';
    }
    else
    {
        a=num2.toDouble();//将字符串转换浮点类型
        b=num1.toDouble();
        switch(fuhao)
        {
            case '+':a+=b;break;
            case '-':a=b-a;break;
            case '*':a*=b;break;
            case '/':a=b/a;break;
        }
        num1=QString::number(a,'f',3);//转换回来
        num2="0";
        fuhao='+';
        ui->lineEdit_2->setText(num1);
    }

}

void MainWindow::on_pushButton_11_clicked()//-
{
    double a,b;
    s+="-";
    ui->lineEdit->setText(s);
    if(fuhao==' ')
    {
        num1=num2;
        num2="0";
        fuhao='-';
    }
    else
    {
        a=num2.toDouble();
        b=num1.toDouble();
        switch(fuhao)
        {
            case '+':a+=b;break;
            case '-':a=b-a;break;
            case '*':a*=b;break;
            case '/':a=b/a;break;
        }
        num1=QString::number(a,'f',3);
        num2="0";
        fuhao='-
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值