#ifndef MAINFORM_H
#define MAINFORM_H
#include <QDialog>
namespace Ui {
class MainForm;
}
class MainForm : public QDialog
{
Q_OBJECT
public:
explicit MainForm(QWidget *parent = 0);
~MainForm();
private slots:
void onBtnClicked();
void on_btnCalc_clicked();
void on_btnClear_clicked();
private:
Ui::MainForm *ui;
};
#endif // MAINFORM_H
#include "MainForm.h"
#include "ui_MainForm.h"
#include <QMessageBox>
MainForm::MainForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::MainForm)
{
ui->setupUi(this);
connect(ui->btn1, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn2, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn3, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn4, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn5, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn6, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn7, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn8, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btn9, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btnAdd, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btnSub, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btnMul, SIGNAL(clicked()), SLOT(onBtnClicked()));
connect(ui->btnDiv, SIGNAL(clicked()), SLOT(onBtnClicked()));
}
MainForm::~MainForm()
{
delete ui;
}
void MainForm::onBtnClicked()
{
ui->txt1->setText(ui->txt1->text()+((QPushButton*)sender())->text());
}
void MainForm::on_btnCalc_clicked()
{
if (ui->txt1->text().isEmpty())
{
QMessageBox::information(0, "提示", "请输入算式");
return;
}
int x = 0, y = 0;
double sum = 0;
char c;
sscanf(ui->txt1->text().toLatin1().data(), "%d%c%d", &x, &c, &y);
if (c == '+') sum = x+y;
else if (c == '-') sum = x-y;
else if (c == '*') sum = x*y;
else if (c == '/') sum = x*1.0/y;
else
{
QMessageBox::information(0, "提示", "输入的运算符无法识别");
return;
}
ui->txt1->setText(QString::number(sum));
}
void MainForm::on_btnClear_clicked()
{
ui->txt1->clear();
}
#include "MainForm.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainForm w;
w.show();
return a.exec();
}