用qt写一个加减乘除的计算器 用到按钮
时间: 2023-09-30 11:08:38 浏览: 158
好的,我可以帮你解决这个问题。你需要先安装Qt开发环境,然后创建一个新的Qt项目。在Qt Creator中,选择 “文件” -> “新建文件或项目”,然后选择 “应用程序” -> “Qt Widgets应用程序” -> “选择”。
接下来,你需要在Qt Designer中设计一个用户界面。你可以添加按钮,文本框等控件。当用户点击按钮时,你需要连接相应的信号和槽函数来执行计算。例如,当用户点击“+”按钮时,你可以连接“clicked”信号到一个名为“additionClicked”的槽函数,该函数执行加法计算并将结果显示在文本框中。
下面是一个示例“加法”槽函数的代码:
```
void Calculator::additionClicked()
{
// 获取文本框中的数字
double num1 = ui->lineEdit_num1->text().toDouble();
double num2 = ui->lineEdit_num2->text().toDouble();
// 计算结果
double result = num1 + num2;
// 将结果显示在文本框中
ui->lineEdit_result->setText(QString::number(result));
}
```
你需要为每个按钮都创建一个类似的槽函数。最后,你需要在Qt Creator中编译并运行你的程序,就可以使用你的计算器了。
相关问题
用Qt实现简易计算器实现加减乘除完整代码
在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`信号更新显示结果。
注意,你需要自己继续添加剩下运算符的按钮,并连接它们到正确的槽函数,以及处理清零输入字段和其他逻辑细节。
qt实现计算器加减乘除
可以使用Qt的QLineEdit和QPushButton来实现简单的计算器加减乘除功能。在QPushButton的clicked()信号中,读取QLineEdit中的文本,然后进行相应的计算。具体实现如下:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QHBoxLayout>
#include <QtCore/QRegExp>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget w;
QLineEdit *lineEdit = new QLineEdit; // 输入框
QRegExp regExp("[0-9]*"); // 正则表达式,限制只能输入数字
lineEdit->setValidator(new QRegExpValidator(regExp, lineEdit));
lineEdit->setAlignment(Qt::AlignRight); // 文本右对齐
QPushButton *btnAdd = new QPushButton("+"); // 加号按钮
QPushButton *btnSub = new QPushButton("-"); // 减号按钮
QPushButton *btnMul = new QPushButton("*"); // 乘号按钮
QPushButton *btnDiv = new QPushButton("/"); // 除号按钮
// 计算器布局
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(lineEdit);
layout->addWidget(btnAdd);
layout->addWidget(btnSub);
layout->addWidget(btnMul);
layout->addWidget(btnDiv);
w.setLayout(layout);
QObject::connect(btnAdd, &QPushButton::clicked, [&]() {
double num1 = lineEdit->text().toDouble();
double num2 = lineEdit->text().section('+', 1).toDouble();
double result = num1 + num2;
lineEdit->setText(QString::number(result)); });
QObject::connect(btnSub, &QPushButton::clicked, [&]() {
double num1 = lineEdit->text().toDouble(); double num2 = lineEdit->text().section('-', 1).toDouble();
double result = num1 - num2;
lineEdit->setText(QString::number(result));
});
QObject::connect(btnMul, &QPushButton::clicked, [&]() {
double num1 = lineEdit->text().toDouble();
double num2 = lineEdit->text().section('*', 1).toDouble();
double result = num1 * num2;
lineEdit->setText(QString::number(result));
});
QObject::connect(btnDiv, &QPushButton::clicked, [&]() {
double num1 = lineEdit->text().toDouble();
double num2 = lineEdit->text().section('/', 1).toDouble();
double result = num1 / num2;
lineEdit->setText(QString::number(result));
});
w.show();
return app.exec();
}
```
阅读全文