用python做简单的计算器,python编写简单计算器

大家好,小编来为大家解答以下问题,用python做简单的计算器,python编写简单计算器,现在让我们一起来看看吧!

原文链接:PYQT制作简易计算器_pyqt5 简易计算器-优快云博客

本人目前是只是一名普通在校大学生,在大二第一学期开设的课程里接触到Python语言与pyqt。本文章所写内容,为本人在Python课程结课考察中所做的小项目——计算器python创意小作品代码。此计算器的设计参考了win10系统自带的计算器与安卓系统手机计算器。

另外,本人并非计算机系学生,所以本文章或许会有许多不合理或不专业之处,还望各位大佬指正。

一、项目制作各部分构思

这一部分,我将为大家介绍,我在制作计算器时各方面的想法与构思。大致可分为以下几个内容:Qt界面、运算、删除、窗体伸缩、键盘控制。

1、Qt界面

本项目所设计的计算器的Qt界面大体如下:

在此计算器的显示部分,为了美观我使用了一个多行文本框(Text Edit),将其设置为只读(readOnly),并将两个标签(Label)覆盖其上,用两行标签来显示计算器计算内容。

代码如下:

        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setGeometry(QtCore.QRect(40, 30, 431, 111))
        self.textEdit.setReadOnly(True)
        self.textEdit.setObjectName("textEdit")
        self.labNumber1 = QtWidgets.QLabel(self.centralwidget)
        self.labNumber1.setGeometry(QtCore.QRect(40, 90, 431, 51))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setWeight(75)
        self.labNumber1.setFont(font)
        self.labNumber1.setText("")
        self.labNumber1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.labNumber1.setObjectName("labNumber1")
        self.labNumber2 = QtWidgets.QLabel(self.centralwidget)
        self.labNumber2.setGeometry(QtCore.QRect(200, 30, 271, 61))
        font = QtGui.QFont()
        font.setPointSize(13)
        self.labNumber2.setFont(font)
        self.labNumber2.setText("")
        self.labNumber2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.labNumber2.setObjectName("labNumber2")

以上代码存在于Ui-MainWindow.py中,属于使用desinger设计内容,下面文章内容不会出现此部分代码。

2、数字输入

以数字1与小数点为例,代码如下:

def One(self):
        a=self.labNumber1.text()
        if a=='0':#如果当前a的值为0,则将0换为1
            b='1'
        else:    
            b = self.labNumber1.text() + '1'
        self.labNumber1.setText(str(b))
def Point(self):
        a=self.labNumber1.text()
        if a=='':#如果a为空,则退出函数
            return
        a = self.labNumber1.text() + '.'
        self.labNumber1.setText(str(a))

3、运算

运算逻辑如下图所示:

计算器中的运算模式为:上一级运算交由下一级运算符计算,下一级运算由更下一级运算。

例如:1+2-3=0。按照正常的思维逻辑,我们应先计算1+2,得到结果3,再用所得结果减掉最后的3,最后结果为0。而此次项目的运算思维略有不同,当+号触发时,计算器并不会进行计算,只是将加数1保存下来,等到-号触发时,计算器才会计算出1+2=3,以此类推。
具体程序(以加法为例)如下:

def Add(self):#加法
        a =self.labNumber1.text()
        b =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值