基于Qt5实现的Windows计算器

实现Windows自带的计算器

效果图

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

实现功能

基础计算:加、减、乘、除、小数点、正负、等于,科学计数法;

复杂计算:分数、平方、开根号、百分号;

清除操作:CE - 清除输入数字屏;C - 清除所有; back - 删除单个输入数字;

分屏显示:计算过程保存到小屏幕,输入数字在大屏;

键盘键入功能:调用QKeyEvent自带的事件,实现从键盘键入,实现计算。

布局策略

全部运用布局策略,自适应窗口。

不足

只有运算区可用,图标没有实现功能,只用于布局。

//.h
#pragma once

#include <QtWidgets/QWidget>
#include "ui_kmainwindow.h"
#include<qstring.h>
#include<QKeyEvent>

class KMainWindow : public QWidget
{
   
	Q_OBJECT

public:
	KMainWindow(QWidget* parent = Q_NULLPTR);

private slots:
	//一些槽函数
	void btnPress(char digit);

	void onBtnNum0Clicked();
	void onBtnNum1Clicked();
	void onBtnNum2Clicked();
	void onBtnNum3Clicked();
	void onBtnNum4Clicked();
	void onBtnNum5Clicked();
	void onBtnNum6Clicked();
	void onBtnNum7Clicked();
	void onBtnNum8Clicked();
	void onBtnNum9Clicked();

	void onBtnAddClicked(); //加
	void onBtnSubtractClicked();    //减
	void onBtnMultiplyClicked();    //乘
	void onBtnDivideClicked();      //除
	void onBtnEquClicked();     //等于
	void onBtnPosNegClicked();      //正负
	void onBtnPointClicked();     //小数点
	void onBtnBackClicked();    //back回退一个数字
	void onBtnCClicked();       //C 全部清除
	void onBtnCEClicked();      //CE清除当前行
	void onBtnHalfClicked();    //分数
	void onBtnPercentClicked();		//百分号
	void onBtnSquareClicked();		//平方
	void onBtnSquareFeetClicked();		//开根号

	void keyPressEvent(QKeyEvent* event);

private:
	Ui::KMainWindowClass ui;

	double m_num1;
	double m_num2;
	QString m_op;
	bool m_clearDisplay;
};
//.cpp

#include "kmainwindow.h"

KMainWindow::KMainWindow(QWidget* parent)
	: QWidget(parent)
{
   
	ui.setupUi(this);
	m_num1 = 0.0;
	m_num2 = 0.0;
	m_op = "";
	m_clearDisplay = false;

	(void)connect(ui.btnNum0, &QPushButton::clicked, this, &KMainWindow::onBtnNum0Clicked);
	(void)connect(ui.btnNum1, &QPushButton::clicked, this, &KMainWindow::onBtnNum1Clicked);
	(void)connect(ui.btnNum2, &QPushButton::clicked, this, &KMainWindow::onBtnNum2Clicked);
	(void)connect(ui.btnNum3, &QPushButton::clicked, this, &KMainWindow::onBtnNum3Clicked);
	(void)connect(ui.btnNum4, &QPushButton::clicked, this, &KMainWindow::onBtnNum4Clicked)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值