金狮镖局 Design By www.egabc.com
本文实例讲述了Python PyQt5实现的简易计算器功能。分享给大家供大家参考,具体如下:
这里剩下计算函数(self.calculator
)未实现,有兴趣的朋友可以实现它
【知识点】
1、利用循环添加按钮部件,及给每个按钮设置信号/槽
2、给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30))
3、取事件的的发送者(此例为各个按钮)的文本: self.sender().text()
【效果图】
【源代码】
import sys from PyQt5 import QtWidgets,QtCore,QtGui class Example(QtWidgets.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() self.reset() def initUI(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 for name in names: button = QtWidgets.QPushButton(name) button.setFixedSize(QtCore.QSize(60,30)) button.clicked.connect(self.buttonClicked) # 给每个按钮设置信号/槽 if c == 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) def buttonClicked(self): #sender = self.sender(); # 确定信号发送者 #self.display.setText(sender.text()) text = self.sender().text() if text in '+-*/': self.history.append(self.number) # 数字入栈 self.history.append(text) # 运算符入栈 self.operator = text # 设置当前运算符 self.number = "" # 数字清空 self.numberType = "int" return elif text == "=": self.calculate() # 计算 elif text == "Back": pass elif text == "Clear": self.reset() elif text == "Close": self.close() elif text == ".": if self.numberType == "int": self.number += text self.numberType = "float" else: self.number = self.number + text if self.number != "0" else text self.display.setText(self.number) def calculate(self): pass def reset(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_())
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
标签:
Python,PyQt5,计算器
金狮镖局 Design By www.egabc.com
金狮镖局
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金狮镖局 Design By www.egabc.com
暂无Python PyQt5实现的简易计算器功能示例的评论...
更新日志
2024年11月15日
2024年11月15日
- 刘文正《流金三十年》[6N纯银镀膜][低速原抓WAV+CUE]
- 赵传.1994-精挑细选精选集【滚石】【WAV+CUE】
- 郑亚弦.2024-隔壁包厢603(EP)【发现梦想】【FLAC分轨】
- 文章.2004-被遗忘的时光【华博音乐】【WAV+CUE】
- 群星《青葱韶歌》原力计划·毕业季企划合辑[FLAC+分轨][661M]
- 群星《抖烧 DSD》抖音神曲 [WAV分轨][992M]
- 庾澄庆《哈林天堂》索尼音乐[WAV+CUE][1G]
- 英雄联盟全球总决赛多久打一次 全球总决赛举办频率介绍
- 第二届老头杯什么时候开始选人 第二届老头杯选人时间介绍
- 英雄联盟第二届老头杯什么时候开始 老头杯s2赛程时间队伍名单汇总
- AI赋能卓越显示技术共筑数字未来:三星显示器产品矩阵亮相2024进博会
- 技术剖析:天玑9400如何打造移动最强GPU和游戏体验?
- 顶级装备 实力登顶:三星显示器双十一焕新升级最后冲刺
- 陈影《绝色靓声》WAV+CUE
- 龚玥《禅是一枝花(6N纯银SQCD)》原抓WAV+CUE