最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python PyQt5实现的简易计算器功能示例
时间:2017-08-24 编辑:猪哥 来源:一聚教程网
这里剩下计算函数(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_())
相关文章
- Golang ProtoBuf的基本语法详解 10-20
- Python识别MySQL中的冗余索引解析 10-20
- Python+Pygame绘制小球代码展示 10-18
- Python中的数据精度问题介绍 10-18
- Python随机值生成的常用方法介绍 10-18
- python3解压缩.gz文件分析 09-27