QT写一个计算器,上方显示计算过程下方显示结果
时间: 2024-12-12 11:19:17 浏览: 13
C++/ qt 编写一个简单计算器
在Qt中创建一个简单的计算器应用程序,可以分为几个步骤:
1. **设置界面**:
使用`QApplication`、`QWidget`为基础,设计一个包含两个输入框(用于输入数字)和一个显示区域(显示计算结果)。此外,还需要按钮来表示基本的算术运算如加减乘除,以及一个清除按钮。
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include < QLabel>
class CalculatorWindow : public QWidget {
Q_OBJECT
public:
CalculatorWindow(QWidget *parent = nullptr);
private slots:
void onButtonClicked(const QString &text);
private:
QLineEdit leftInput, rightInput;
QLabel resultLabel;
QPushButton *operators[9]; // 9 buttons for each operation
};
```
2. **构建布局**:
使用`QVBoxLayout`来排列控件,将输入框放在上方,操作按钮放中间,结果显示区放底部。
```cpp
CalculatorWindow::CalculatorWindow(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(new QLineEdit(&leftInput));
layout->addWidget(new QLineEdit(&rightInput));
layout->addWidget(resultLabel);
for (int i = 0; i < 9; ++i) {
operators[i] = new QPushButton(QChar('0' + i), this); // '0' 到 '8'
operators[i]->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
layout->addWidget(operators[i]);
}
setLayout(layout);
}
```
3. **槽函数处理**:
实现每个按钮点击事件(`onButtonClicked`),根据按钮的文本(通常代表数字或运算符)更新显示,并处理计算逻辑。
```cpp
void CalculatorWindow::onButtonClicked(const QString &text)
{
if (text.isnumeric()) { // 如果是数字
int value = text.toInt();
if (leftInput.text().isEmpty())
leftInput.setText(text);
else
rightInput.setText(leftInput.text() + text);
} else if (!rightInput.text().isEmpty()) { // 如果是运算符
int leftValue = leftInput.text().toInt();
int rightValue = rightInput.text().toInt();
resultLabel.setText(QString::number(calculation(leftValue, rightValue, text))); // 这里需要实现calculation函数
leftInput.clear(); // 清空输入框
rightInput.clear();
}
}
```
4. **计算逻辑**:
根据实际需求编写`calculation`函数,实现具体的数学运算。例如,对于加法可以用`+`,减法用`-`等。
5. **完整示例**:
编写主函数并创建应用实例,运行整个程序。
```cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
CalculatorWindow calculator;
calculator.show();
return app.exec();
}
// ... 具体实现calculation函数
```
阅读全文