Python课程即将告一段落,随之而来的就是课程考核了,这是我做的Python项目。同时在这也要感谢一下帮我解决项目相关问题,给予程序建议的老师和热心的博主们。第一次发帖,还望各位博主多多指教。
开发环境:Visual Studio Code
我们将按以下步骤构建简易计算器
1、使用Qt Designer绘制简易计算器界面,如下图所示:
2、更改对象名,如下图所示:
3、设置txtDisplay右对齐并只读(只读很关键),如下图所示:
4、设置信号和槽名,如下图所示:
5、参考代码:
# 系统包 import sys from PyQt5 import QtCore, QtGui, QtWidgets # 项目包 from Ui_MainWindow import Ui_MainWindow class CMainWindow(QtWidgets.QMainWindow, Ui_MainWindow): number1 = 0 number2 = 0 type = 0 # 0表示无运算 1表示加法运算 2表示减法运算 #3表示乘法运算 #表示除法运算 s = ""#定义一个全局变量 用来记录在 等于 之前的所有输入值, def __init__(self, parent = None): super(CMainWindow, self).__init__(parent) self.setupUi(self) # 主窗体设置 self.setFixedSize(self.width(), self.height()) self.show() def AddNumber(self, number): #print(self.s) self.txtDisplay.setText(self.s) def Push00(self): self.s = self.s+"00" self.AddNumber("00") def Push0(self): self.s = self.s +"0" self.AddNumber("0") def Push1(self): self.s = self.s +"1" self.AddNumber("1") def Push2(self): self.s = self.s +"2" self.AddNumber("2") def Push3(self): self.s = self.s +"3" self.AddNumber("3") def Push4(self): self.s = self.s +"4" self.AddNumber("4") def Push5(self): self.s = self.s +"5" self.AddNumber("5") def Push6(self): self.s = self.s +"6" self.AddNumber("6") def Push7(self): s = self.s +"7" self.AddNumber("7") def Push8(self): self.s = self.s +"8" self.AddNumber("8") def Push9(self): self.s = self.s +"9" self.AddNumber("9") def PushDot(self): self.s = self.s +"." self.AddNumber(".") def PushClr(self): self.s = "" self.txtDisplay.setText("0") self.number1 = 0 self.number2 = 0 self.type = 0 def PushAdd(self): self.number1 = float(self.txtDisplay.text()) self.type = 1 self.s = self.s +"+" self.AddNumber("+") def PushSub(self): self.number1 = float(self.txtDisplay.text()) self.type = 3 self.s = self.s+"-" self.AddNumber("-") def PushMul(self): self.type = 2 self.s = self.s+"*" self.AddNumber("*") def PushDiv(self): self.type = 2 self.s = self.s + "/" self.AddNumber("/") def PushEqr(self):##重写计算函数 result = 0 if(self.s.__contains__("+")): S = self.s.split("+") for i in S: result = result + int(i) print(result) self.s = str(result) self.txtDisplay.setText(self.s) elif (self.s[1::].__contains__("-") ):##进行减法时 排除第一个数为负数的 防止其他运算误入减法 if (self.s[0].__eq__("-")): # 减法的第一个数为负数 self.s = self.s[1::] S = self.s.split("-") result = int(S[0])*(-1) else : S = self.s.split("-") result = int(S[0]) for i in S[1::]: result = result - int(i) print(result) self.s = str(result) self.txtDisplay.setText(self.s) elif (self.s.__contains__("*")): S = self.s.split("*") result = int(S[0]) for i in S[1::]: result = result * int(i) print(result) self.s = str(result) self.txtDisplay.setText(self.s) elif (self.s.__contains__("/")):# 仅仅整除 且不能除以0 S = self.s.split("/") result = int(S[0]) for i in S[1::]: result = result / int(i) print(result) self.s = str(int(result)) self.txtDisplay.setText(self.s) if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = CMainWindow() sys.exit(app.exec_())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)