源代码目录
expr.ui窗口设计
expr.h
#ifndef EXPR_H
#define EXPR_H
#include <QDialog>
#include "model.h"
#include<QString>
namespace Ui {
class expr;
}
class expr : public QDialog
{
Q_OBJECT
public:
explicit expr(QWidget *parent = 0);
~expr();
private slots:
void getBtn0();
void getBtn1();
void getBtn2();
void on_btn_3_clicked();
void on_btn_4_clicked();
void on_btn_5_clicked();
void on_btn_6_clicked();
void on_btn_7_clicked();
void on_btn_8_clicked();
void on_btn_9_clicked();
void on_btn_plus_clicked();
void on_btn_sub_clicked();
void on_btn_mul_clicked();
void on_btn_div_clicked();
void on_btn_equal_clicked();
void on_btn_clear_clicked();
private:
QString tmp;
Ui::expr *ui;
model * mode;
};
#endif // EXPR_H
model.h
#ifndef MODEL_H
#define MODEL_H
#include<QString>
class model
{
public:
model();
void setNum1(int num);
void setNum2(int num);
void setFlag(QString);
QString doExpr();
private:
int num1;
int num2;
QString flag;
};
#endif // MODEL_H
expr.cpp
#include "expr.h"
#include "ui_expr.h"
expr::expr(QWidget *parent) :
QDialog(parent),
ui(new Ui::expr)
{
ui->setupUi(this);
connect(this->ui->btn_0,SIGNAL(clicked(bool)),this,SLOT(getBtn0()));
connect(this->ui->btn_1,SIGNAL(clicked(bool)),this,SLOT(getBtn1()));
connect(this->ui->btn_2,SIGNAL(clicked(bool)),this,SLOT(getBtn2()));
this->mode=new model;
this->tmp="";
}
expr::~expr()
{
delete ui;
}
void expr::getBtn0(){
if(this->tmp !=""){
this->tmp+=this->ui->btn_0->text();
this->ui->lbl_display->setText(this->tmp);
}
}
void expr::getBtn1(){
this->tmp+=this->ui->btn_1->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::getBtn2(){
this->tmp+=this->ui->btn_2->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_3_clicked()
{
this->tmp+=this->ui->btn_3->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_4_clicked()
{
this->tmp+=this->ui->btn_4->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_5_clicked()
{
this->tmp+=this->ui->btn_5->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_6_clicked()
{
this->tmp+=this->ui->btn_6->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_7_clicked()
{
this->tmp+=this->ui->btn_7->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_8_clicked()
{
this->tmp+=this->ui->btn_8->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_9_clicked()
{
this->tmp+=this->ui->btn_9->text();
this->ui->lbl_display->setText(this->tmp);
}
void expr::on_btn_plus_clicked()
{
int num=this->tmp.toInt();
this->mode->setNum1(num);
this->tmp="";
QString ex=this->ui->btn_plus->text();
this->mode->setFlag(ex);
}
void expr::on_btn_sub_clicked()
{
int num=this->tmp.toInt();
this->mode->setNum1(num);
this->tmp="";
QString ex=this->ui->btn_sub->text();
this->mode->setFlag(ex);
}
void expr::on_btn_mul_clicked()
{
int num=this->tmp.toInt();
this->mode->setNum1(num);
this->tmp="";
QString ex=this->ui->btn_mul->text();
this->mode->setFlag(ex);
}
void expr::on_btn_div_clicked()
{
int num=this->tmp.toInt();
this->mode->setNum1(num);
this->tmp="";
QString ex=this->ui->btn_div->text();
this->mode->setFlag(ex);
}
void expr::on_btn_equal_clicked()
{
int num=this->tmp.toInt();
this->mode->setNum2(num);
QString res = this->mode->doExpr();
this->ui->lbl_display->setText(res);
this->tmp="";
}
void expr::on_btn_clear_clicked()
{
this->tmp="";
this->ui->lbl_display->setText("0");
}
model.cpp
#include "model.h"
model::model()
{
this->num1=0;
this->num2=0;
}
void model::setNum1(int num){
this->num1=num;
}
void model::setNum2(int num){
this->num2=num;
}
void model::setFlag(QString flag){
this->flag=flag;
}
QString model::doExpr(){
int result=0;
if(this->flag=="+"){
result=num1+num2;
}else if(this->flag=="-"){
result=this->num1-this->num2;
}else if(this->flag=="*"){
result=this->num1*this->num2;
}else if(this->flag=="/"){
if(this->num2==0){
return "ERROR";
}
result=this->num1/this->num2;
}else{
//num1->QString
return QString::number(this->num1);
}
//return->QString
return QString::number(result);
}
main.cpp
#include "expr.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
expr w;
w.show();
return a.exec();
}