全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python PyQt5实现的简易计算器功能示例

本文实例讲述了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./jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools./jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools./jisuanqi/jsq

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # PyQt5  # 计算器  # PyQt5实现简易计算器  # python3.5 + PyQt5 +Eric6 实现的一个计算器代码  # PyQt5实现简单的计算器  # Pyqt5实战小案例之界面与逻辑分离的小计算器程序  # 运算符  # 进阶  # 操作技巧  # 相关内容  # 两种  # 感兴趣  # 数据结构  # 给大家  # 有兴趣  # 可以实现  # 第三个  # 更多关于  # 则为  # 所述  # 几款  # 程序设计  # 源代码  # 使用技巧  # 清空  # 再为 


相关文章: 头像制作网站在线制作软件,dw网页背景图像怎么设置?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  装修招标网站设计制作流程,装修招标流程?  如何在腾讯云服务器快速搭建个人网站?  Java解压缩zip - 解压缩多个文件或文件夹实例  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何用PHP快速搭建高效网站?分步指南  企业微网站怎么做,公司网站和公众号有什么区别?  如何在阿里云服务器自主搭建网站?  如何快速搭建二级域名独立网站?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  网站好制作吗知乎,网站开发好学吗?有什么技巧?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何通过wdcp面板快速创建网站?  建站之星如何优化SEO以实现高效排名?  如何快速打造个性化非模板自助建站?  如何在IIS中新建站点并配置端口与IP地址?  网站制作难吗安全吗,做一个网站需要多久时间?  如何快速上传自定义模板至建站之星?  网站制作企业,网站的banner和导航栏是指什么?  相册网站制作软件,图片上的网址怎么复制?  建站主机与服务器功能差异如何区分?  制作营销网站公司,淘特是干什么用的?  如何快速搭建高效WAP手机网站?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站OpenVZ教程与优化策略:配置指南与性能提升  如何用免费手机建站系统零基础打造专业网站?  创业网站制作流程,创业网站可靠吗?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何快速搭建高效香港服务器网站?  深入理解Android中的xmlns:tools属性  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何用美橙互联一键搭建多站合一网站?  ,有什么在线背英语单词效率比较高的网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何制作网站标识牌,动态网站如何制作(教程)?  如何选择高效可靠的多用户建站源码资源?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  网站制作需要会哪些技术,建立一个网站要花费多少?  PHP正则匹配日期和时间(时间戳转换)的实例代码  广州营销型建站服务商推荐:技术优势与SEO优化解析  建站之星代理商如何保障技术支持与售后服务?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站DNS解析失败?如何正确配置域名服务器?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。