给我widget.cpp的代码
时间: 2023-07-10 13:36:16 浏览: 79
好的,以下是一个简单的widget.cpp示例代码,实现了一个简单的四则运算计算器:
```c++
#include "widget.h"
#include "ui_widget.h"
#include <QStack>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
connect(ui->calculateButton, &QPushButton::clicked, this, &Widget::on_calculateButton_clicked);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_calculateButton_clicked()
{
QString input = ui->inputLineEdit->text();
QStringList tokens = input.split(" ");
QStack<double> stack;
for (QString token : tokens) {
if (token == "+") {
double b = stack.pop();
double a = stack.pop();
stack.push(a + b);
} else if (token == "-") {
double b = stack.pop();
double a = stack.pop();
stack.push(a - b);
} else if (token == "*") {
double b = stack.pop();
double a = stack.pop();
stack.push(a * b);
} else if (token == "/") {
double b = stack.pop();
double a = stack.pop();
stack.push(a / b);
} else {
double number = token.toDouble();
stack.push(number);
}
}
double result = stack.pop();
ui->resultLabel->setText(QString::number(result));
}
```
在这个示例代码中,我们使用了Qt的信号和槽机制来实现按钮点击事件的处理。当用户点击“calculateButton”按钮时,会调用“on_calculateButton_clicked()”函数进行计算。
在“on_calculateButton_clicked()”函数中,我们首先从文本框中获取用户输入的字符串,并将其按空格分隔成一个个操作符和操作数。然后,我们使用一个栈来保存操作数,并依次处理每个操作符和操作数。
如果当前处理的是一个操作符,则从栈中弹出两个操作数,进行相应的运算,并将结果压入栈中。如果当前处理的是一个操作数,则将其转换为double类型,并压入栈中。
当所有的操作符和操作数都处理完毕后,栈中只剩下一个元素,即为计算结果。我们将其弹出,并将结果显示在标签控件中。
需要注意的是,这个示例代码只实现了简单的四则运算,并且没有处理错误输入和复杂运算等情况。在实际的应用中,我们需要对代码进行适当的修改和扩展,以满足实际需求。
阅读全文