使用Qt制作一个简易计算器

基于Qt,使用C++语言开发的一个简易计算器,包含了加减乘除四则运算。(仅适合初级学者学习)

widget.h 文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_okButton_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

widget.cpp 文件

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>
#include <QMessageBox>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_okButton_clicked()
{
/*
 * 只有加法运算
 * * * * * * * */
//    int firstNumber =  ui->firstNumberLineEdit->text().toInt();
//    int secondNumber = ui->secondNumberLineEdit->text().toInt();
//    int resultNumber = firstNumber + secondNumber;

//    ui->resultLineEdit->setText(QString::number(resultNumber));

/*
 * 加减乘除四则运算
 * * * * * * * * * * */
    int firstNumber =  ui->firstNumberLineEdit->text().toInt();
    int secondNumber = ui->secondNumberLineEdit->text().toInt();
    int resultNumber;

    if(ui->operationComboBox->currentIndex() == 0)
    {
        resultNumber = firstNumber + secondNumber;
        ui->resultLineEdit->setText(QString::number(resultNumber));
        QMessageBox::information(this,"Result",QString::number(resultNumber));
    }

    if(ui->operationComboBox->currentIndex() == 1)
    {
        resultNumber = firstNumber - secondNumber;
        ui->resultLineEdit->setText(QString::number(resultNumber));
        QMessageBox::information(this,"Result",QString::number(resultNumber));
    }

    if(ui->operationComboBox->currentIndex() == 2)
    {
        resultNumber = firstNumber * secondNumber;
        ui->resultLineEdit->setText(QString::number(resultNumber));
        QMessageBox::information(this,"Result",QString::number(resultNumber));
    }

    if(ui->operationComboBox->currentIndex() == 3)
    {
        if(secondNumber == 0)
        {
//            qDebug("分子不能为零!");
            QMessageBox::warning(this,"Error Message","Scond number can't be zero!");
        }else
        {
            resultNumber = firstNumber / secondNumber;
            ui->resultLineEdit->setText(QString::number(resultNumber));
            QMessageBox::information(this,"Result",QString::number(resultNumber));
        }
    }
}

源码:http://download.csdn.net/detail/u013383042/9409225
原创:http://blog.csdn.net/u013383042/article/details/50539777

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个简易的计算器示例,使用Qt实现: ```cpp #include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建主窗口 QWidget window; window.setWindowTitle("Calculator"); // 创建文本框用于显示计算结果 QLineEdit* resultLineEdit = new QLineEdit(&window); resultLineEdit->setReadOnly(true); resultLineEdit->setAlignment(Qt::AlignRight); resultLineEdit->setFixedHeight(30); // 创建按钮布局 QGridLayout* buttonLayout = new QGridLayout; // 创建数字按钮 for (int i = 0; i < 10; ++i) { QPushButton* button = new QPushButton(QString::number(i), &window); buttonLayout->addWidget(button, i / 3, i % 3); QObject::connect(button, &QPushButton::clicked, [=]() { resultLineEdit->setText(resultLineEdit->text() + button->text()); }); } // 创建运算符按钮 QStringList operators = { "+", "-", "*", "/" }; for (int i = 0; i < operators.size(); ++i) { QPushButton* button = new QPushButton(operators.at(i), &window); buttonLayout->addWidget(button, i + 3, 3); QObject::connect(button, &QPushButton::clicked, [=]() { resultLineEdit->setText(resultLineEdit->text() + " " + button->text() + " "); }); } // 创建等号按钮 QPushButton* equalButton = new QPushButton("=", &window); buttonLayout->addWidget(equalButton, 6, 2); QObject::connect(equalButton, &QPushButton::clicked, [=]() { QString expression = resultLineEdit->text(); QScriptEngine engine; QScriptValue result = engine.evaluate(expression); resultLineEdit->setText(result.toString()); }); // 创建清除按钮 QPushButton* clearButton = new QPushButton("C", &window); buttonLayout->addWidget(clearButton, 6, 0); QObject::connect(clearButton, &QPushButton::clicked, [=]() { resultLineEdit->clear(); }); // 创建布局并设置主窗口布局 QVBoxLayout* mainLayout = new QVBoxLayout(&window); mainLayout->addWidget(resultLineEdit); mainLayout->addLayout(buttonLayout); // 显示主窗口 window.setLayout(mainLayout); window.show(); return app.exec(); } ``` 上述代码创建了一个简易的计算器界面,包括一个用于显示计算结果的文本框和数字、运算符按钮。用户可以通过点击按钮输入数字和运算符,并通过点击"="按钮执行计算并显示结果。"C"按钮用于清除文本框内容。 注意:该计算器使用Qt的QScriptEngine类来实现计算功能。它可以解析并计算基本的数学表达式。如果您需要更复杂的计算功能,可能需要使用其他的数学库或编写自己的计算逻辑。 希望这个示例对您有所帮助!如果您有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值