cpp
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
- // 连接数字按钮的点击事件
- connect(ui->button0, SIGNAL(clicked()), this, SLOT(digitClicked()));
- connect(ui->button1, SIGNAL(clicked()), this, SLOT(digitClicked()));
- connect(ui->button2, SIGNAL(clicked()), this, SLOT(digitClicked()));
- // ...
-
- // 连接运算符按钮的点击事件
- connect(ui->buttonPlus, SIGNAL(clicked()), this, SLOT(operatorClicked()));
- connect(ui->buttonMinus, SIGNAL(clicked()), this, SLOT(operatorClicked()));
- connect(ui->buttonMultiply, SIGNAL(clicked()), this, SLOT(operatorClicked()));
- connect(ui->buttonDivide, SIGNAL(clicked()), this, SLOT(operatorClicked()));
-
- // 连接等号按钮的点击事件
- connect(ui->buttonEquals, SIGNAL(clicked()), this, SLOT(equalsClicked()));
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- // 数字按钮点击事件处理函数
- void MainWindow::digitClicked()
- {
- QPushButton* button = dynamic_cast
(sender()); - if (button != nullptr) {
- QString buttonText = button->text();
- ui->lineEdit->insert(buttonText);
- }
- }
-
- // 运算符按钮点击事件处理函数
- void MainWindow::operatorClicked()
- {
- QPushButton* button = dynamic_cast
(sender()); - if (button != nullptr) {
- QString buttonText = button->text();
- ui->lineEdit->insert(" " + buttonText + " ");
- }
- }
-
- // 等号按钮点击事件处理函数
- void MainWindow::equalsClicked()
- {
- QString expression = ui->lineEdit->text();
-
- // 解析表达式,执行运算
-
- // 显示结果
- ui->lineEdit->setText(result);
- }
在代码中,我们使用了connect()
函数将每个按钮的点击事件连接到对应的槽函数。在数字按钮点击事件处理函数中,我们获取按钮的文本并插入到输入框中。在运算符按钮点击事件处理函数中,我们在输入框中插入相应的运算符。在等号按钮点击事件处理函数中,我们获取输入框中的表达式,解析表达式并执行相应的运算,最后将结果显示在输入框中。
请注意,这里需要根据需要在equalsClicked()
函数中添加代码来实现解析表达式和执行运算的逻辑。
cpp
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include
-
- namespace Ui {
- class MainWindow;
- }
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- explicit MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
-
- private slots:
- void digitClicked();
- void operatorClicked();
- void equalsClicked();
-
- private:
- Ui::MainWindow *ui;
- };
-
- #endif // MAINWINDOW_H
通过按照以上步骤,您可以使用C++和QT实现一个基本的计算器。用户可以点击数字按钮输入数字,点击运算符按钮输入运算符,并点击等号按钮执行运算并显示结果。您可以根据需要扩展代码,实现更多功能,如括号、小数点、清除按钮等。