这里剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它
【知识点】
1、利用循环添加按钮部件,及给每个按钮设置信号/槽
2、给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30))
3、取事件的的发送者(此例为各个按钮)的文本:self.sender().text()
【效果图】
【源代码】
importsys fromPyQt5importQtWidgets,QtCore,QtGui classExample(QtWidgets.QWidget): def__init__(self): super(Example,self).__init__() self.initUI() self.reset() definitUI(self): self.setWindowTitle("简易计算器") grid=QtWidgets.QGridLayout() self.display=QtWidgets.QLineEdit("0") self.display.setFont(QtGui.QFont("Times",20)) self.display.setReadOnly(True) self.display.setAlignment(QtCore.Qt.AlignRight) self.display.setMaxLength(15) grid.addWidget(self.display,0,0,1,4) names=["Clear","Back", "", "Close", "7","8","9","/", "4","5","6","*", "1","2","3","-", "0",".","=","+"] pos=[(0,0), (0,1), (0,2), (0,3), (1,0), (1,1), (1,2), (1,3), (2,0), (2,1), (2,2), (2,3), (3,0), (3,1), (3,2), (3,3), (4,0), (4,1), (4,2), (4,3)] c=0 fornameinnames: button=QtWidgets.QPushButton(name) button.setFixedSize(QtCore.QSize(60,30)) button.clicked.connect(self.buttonClicked)# 给每个按钮设置信号/槽 ifc==2: pass #grid.addWidget(QtWidgets.QLabel(""), 0, 2) #替换 第三个按钮 为 文本标签! else: grid.addWidget(button, pos[c][0]+1, pos[c][1]) c=c+1 self.setLayout(grid) defbuttonClicked(self): #sender = self.sender(); # 确定信号发送者 #self.display.setText(sender.text()) text=self.sender().text() iftextin"+-*/": self.history.append(self.number)# 数字入栈 self.history.append(text)# 运算符入栈 self.operator=text# 设置当前运算符 self.number=""# 数字清空 self.numberType="int" return eliftext=="=": self.calculate()# 计算 eliftext=="Back": pass eliftext=="Clear": self.reset() eliftext=="Close": self.close() eliftext==".": ifself.numberType=="int": self.number+=text self.numberType="float" else: self.number=self.number+textifself.number !="0"elsetext self.display.setText(self.number) defcalculate(self): pass defreset(self): self.number="0" self.result=0 self.history=[] self.operator=""# +,-,*,/ self.numberType="int"# int与float两种,如果输入了小数点则为实数 app=QtWidgets.QApplication(sys.argv) ex=Example() ex.show() sys.exit(app.exec_())
【python zip】Python PyQt5实现的简易计算器功能示例
http://m.bbyears.com/jiaocheng/135457.html
推荐访问:python基础教程 python3