大家好,小编来为大家解答以下问题,用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 =

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



