用Qt实现简易计算器实现加减乘除完整代码
时间: 2024-09-20 10:01:35 浏览: 61
在Qt中实现一个简单的计算器应用,你可以使用QLineEdit来接收用户输入,QPushButton来触发计算操作,并连接信号槽处理各个运算。这里提供一个基本的示例代码:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QMessageBox>
class CalculatorWindow : public QWidget {
public:
explicit CalculatorWindow(QWidget *parent = nullptr) : QWidget(parent) {
setLayout(QVBoxLayout(this));
QLineEdit* inputField = new QLineEdit();
inputField->setAlignment(Qt::AlignRight);
layout()->addWidget(inputField);
QPushButton* addButton = new QPushButton("+");
addButton->setFixedSize(40, 40); // 设置按钮大小
connect(addButton, &QPushButton::clicked, [this] {
QString firstInput = inputField->text();
if (!firstInput.isEmpty()) {
double firstNum = qApp->translate("Calculator", firstInput).toDouble(); // 转换输入为数字
inputField->setText("");
double secondNum = qApp->translate("Calculator", "0").toDouble(); // 清空并添加初始值
performOperation(firstNum, secondNum, "+");
}
});
layout()->addWidget(addButton);
// 添加其他运算符按钮并连接相应槽函数
QPushButton* subButton = new QPushButton("-");
... // (类似地添加减、乘、除等按钮)
private:
void performOperation(double num1, double num2, const QString& operatorString) {
double result;
switch (operatorString) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 != 0)
result = num1 / num2;
else
QMessageBox::critical(this, "错误", tr("除数不能为零"));
break;
default:
return; // 非法运算符
}
emit display(result);
}
signals:
void display(double value); // 输出结果显示信号
};
int main(int argc, char **argv) {
QApplication app(argc, argv);
CalculatorWindow calculator;
calculator.show();
return app.exec();
}
```
这个例子中,我们创建了一个包含文本输入框和几个基础运算符按钮的窗口。当点击按钮时,会触发相应的`performOperation`函数,根据运算符执行相应的数学运算,并通过`display`信号更新显示结果。
注意,你需要自己继续添加剩下运算符的按钮,并连接它们到正确的槽函数,以及处理清零输入字段和其他逻辑细节。
阅读全文