天天看点

linux下qt实现计算器,Qt实现简易计算器

麻烦到不能再麻烦的实现,简单到不能再简单的思路。

calc.h

#ifndef CALC_H

#define CALC_H

#include

#include "ui_calc.h"

class calc : public QMainWindow

{

Q_OBJECT

public:

calc(QWidget *parent = 0);

~calc();

double x;

double y;

char ch;

bool flag;

private:

Ui::calcClass ui;

private slots:

void on_pushButton_0_clicked();

void on_pushButton_1_clicked();

void on_pushButton_2_clicked();

void on_pushButton_3_clicked();

void on_pushButton_4_clicked();

void on_pushButton_5_clicked();

void on_pushButton_6_clicked();

void on_pushButton_7_clicked();

void on_pushButton_8_clicked();

void on_pushButton_9_clicked();

void on_pushButton_divide_clicked();

void on_pushButton_equal_clicked();

void on_pushButton_multi_clicked();

void on_pushButton_plus_clicked();

void on_pushButton_point_clicked();

void on_pushButton_sub_clicked();

};

#endif // CALC_H

calc.cpp

#include "calc.h"

#include

#include

calc::calc(QWidget *parent)

: QMainWindow(parent)

{

ui.setupUi(this);

x = 0;

y = 0;

flag = false;

setWindowTitle(QStringLiteral("计算器"));

}

calc::~calc()

{

}

void calc::on_pushButton_0_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("0");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("0"));

}

}

void calc::on_pushButton_1_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("1");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("1"));

}

}

void calc::on_pushButton_2_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("2");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("2"));

}

}

void calc::on_pushButton_3_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("3");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("3"));

}

}

void calc::on_pushButton_4_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("4");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("4"));

}

}

void calc::on_pushButton_5_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("5");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("5"));

}

}

void calc::on_pushButton_6_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("6");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("6"));

}

}

void calc::on_pushButton_7_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("7");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("7"));

}

}

void calc::on_pushButton_8_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("8");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("8"));

}

}

void calc::on_pushButton_9_clicked()

{

if (flag)

{

ui.label_2->clear();

flag = false;

}

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString("9");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText(QString("9"));

}

}

void calc::on_pushButton_divide_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL)

{

ui.label_2->clear();

ui.label_2->setText("/");

ch = '/';

x = temp.toDouble();

}

else

{

ui.label_2->setText("error");

}

}

void calc::on_pushButton_equal_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL)

{

flag = true;

y = temp.toDouble();

switch (ch)

{

case '+' :

ui.label_2->setText(QString("%1").arg(x + y));

break;

case '-' :

ui.label_2->setText(QString("%1").arg(x - y));

break;

case '*' :

ui.label_2->setText(QString("%1").arg(x * y));

break;

case '/' :

ui.label_2->setText(QString("%1").arg(x / y));

break;

default:

break;

}

}

else

{

ui.label_2->setText("error");

}

}

void calc::on_pushButton_multi_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL)

{

ui.label_2->clear();

ui.label_2->setText("*");

x = temp.toDouble();

ch = '*';

}

else

{

ui.label_2->setText("error");

}

}

void calc::on_pushButton_plus_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL)

{

ui.label_2->clear();

ui.label_2->setText("+");

x = temp.toDouble();

ch = '+';

}

else

{

ui.label_2->setText("error");

}

}

void calc::on_pushButton_point_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" && temp != NULL && (temp != "+" && temp != "-" && temp != "*" && temp != "/"))

{

temp += QString(".");

ui.label_2->setText(temp);

}

else

{

ui.label_2->setText("error");

}

}

void calc::on_pushButton_sub_clicked()

{

QString temp = ui.label_2->text();

if (temp != "" || temp != NULL)

{

ui.label_2->clear();

ui.label_2->setText("-");

x = temp.toDouble();

ch = '-';

}

else

{

ui.label_2->setText("error");

}

}

linux下qt实现计算器,Qt实现简易计算器