【QT】QT+VS2019的基本功能的计算器(附项目资源)

引文

链接: https://pan.baidu.com/s/1lKyXTOS8UXJtFRjCASlcA 提取码: vh24

一份在Visual Studio的QT中写的简单的闹钟,Qt GUI Application项目,经过调试可能还是会有少些bug,现在将小玩意同大家分享,很期待有朋友一起讨论,文章项目资源可以自行下载,我在调试时的qDebug还留着,方便理解。

代码中主要依靠 IsOperatorClicked 和 IsStoredNumber 来判断是否进行运算,下面是一个简单的运行演示。

步骤 点击的按钮
初始 IsOperatorClicked = false; IsStoredNumber = false;
1 num4
displayLabel.append(button->text());
2 actionMul(+)
storeNumber=4; IsStoredNumber= true
storeOperator=+; IsOperatorClicked= true
3 num2
IsOperatorClicked = false
4 actionEqual(=)
calculate_result(); IsStoredNumber = false

写文章才发现英语单词写错了尬尬,把Equal写成Euqal,就不改了哈,看到的知到它是错的

Calculator.ui

界面设计及控件命名

在这里插入图片描述
在这里插入图片描述

Calculator.h

#pragma once
#include <QMainWindow>
#include "ui_Calculator.h"

#include <QAbstractButton>
#include <QtWidgets/QButtonGroup>
#include <QtCore>

namespace Ui {
   
   
    class Calculator;
}

class Calculator : public QMainWindow
{
   
   
	Q_OBJECT

public:
	Calculator(QWidget *parent = 0);
    ~Calculator();

private slots:
    void numberGroup_clicked(QAbstractButton*);     //123456789
    void actionGroup_clicked(QAbstractButton*);     //+-*/

    void on_actionDel_clicked();        //Del
    void on_actionEqual_clicked();       //=
    void on_comma_clicked();            //.
    void on_actionClear_clicked();      //C
    void on_actionPercent_clicked();    //%
    void on_actionSign_clicked();       //+/-

private:
	Ui::CalculatorClass* ui;

    //限制数值长度
    const int DIGIT_LIMIT = 16;
    //用于检查上一个点击的按钮是否为运算符
    bool IsOperatorClicked;
    //用于检查数字是否存储在内存中
    bool IsStoredNumber;
    //存储最后点击的运算符
    QChar storedOperator;
    //存储数字
    double storedNumber;
    //根据存储的号码和显示的号码计算结果
    void calculate_result();

    QButtonGroup* actionGroup;      //运算符按钮组
    QButtonGroup* numberGroup;      //数字按钮组
};

Calculator.cpp

#include "Calculator.h"

Calculator::Calculator(QWidget* parent)
	: QMainWindow(parent),
	ui(new Ui::CalculatorClass),
	storedNumber(0)
{
   
   
	ui->setupUi(this);

	//设置空显示面板
	ui->displayLabel->clear();

	//将operator和store number和comma标志设置为false
	IsOperatorClicked = false;
	IsStoredNumber = false;

	//分配空间
	numberGroup = new QButtonGroup;
	actionGroup = new QButtonGroup;

	//将按钮放入
	numberGroup->addButton(ui->num1, 1)
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值