程序界面:
//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='-