
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条)