剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它

【知识点】

1、利用循环添加按钮部件,及给每个按钮设置信号/槽

2、给按钮设置固定大小:button.setFixedSize(QtCore.QSize(60,30))

3、取事件的的发送者(此例为各个按钮)的文本: self.sender().text()

【效果图】

【源代码】

 1 import sys
 2 from PyQt5 import QtWidgets,QtCore,QtGui
 3
 4
 5 class Example(QtWidgets.QWidget):
 6
 7     def __init__(self):
 8         super(Example, self).__init__()
 9         self.initUI()
10
11         self.reset()
12
13     def initUI(self):
14         self.setWindowTitle('简易计算器')
15         grid = QtWidgets.QGridLayout()
16
17         self.display = QtWidgets.QLineEdit('0')
18         self.display.setFont(QtGui.QFont("Times", 20))
19         self.display.setReadOnly(True)
20         self.display.setAlignment(QtCore.Qt.AlignRight)
21         self.display.setMaxLength(15)
22         grid.addWidget(self.display,0,0,1,4)
23
24         names = ['Clear', 'Back', '', 'Close',
25                 '7', '8', '9', '/',
26                 '4', '5', '6', '*',
27                 '1', '2', '3', '-',
28                 '0', '.', '=', '+']
29         pos = [(0, 0), (0, 1), (0, 2), (0, 3),
30                 (1, 0), (1, 1), (1, 2), (1, 3),
31                 (2, 0), (2, 1), (2, 2), (2, 3),
32                 (3, 0), (3, 1), (3, 2), (3, 3 ),
33                 (4, 0), (4, 1), (4, 2), (4, 3)]
34         c = 0
35         for name in names:
36             button = QtWidgets.QPushButton(name)
37             button.setFixedSize(QtCore.QSize(60,30))
38             button.clicked.connect(self.buttonClicked) # 给每个按钮设置信号/槽
39             if c == 2:
40                 pass
41                 #grid.addWidget(QtWidgets.QLabel(''), 0, 2) #替换 第三个按钮 为 文本标签!
42             else:
43                 grid.addWidget(button, pos[c][0]+1, pos[c][1])
44             c = c + 1
45
46         self.setLayout(grid)
47
48
49
50
51     def buttonClicked(self):
52         #sender = self.sender();  # 确定信号发送者
53         #self.display.setText(sender.text())
54         text = self.sender().text()
55         if text in '+-*/':
56             self.history.append(self.number) # 数字入栈
57             self.history.append(text) # 运算符入栈
58             self.operator = text # 设置当前运算符
59             self.number = "" # 数字清空
60             self.numberType = "int"
61             return
62         elif text == "=":
63             self.calculate() # 计算
64         elif text == "Back":
65             pass
66         elif text == "Clear":
67             self.reset()
68         elif text == "Close":
69             self.close()
70         elif text == ".":
71             if self.numberType == "int":
72                 self.number += text
73                 self.numberType = "float"
74         else:
75             self.number = self.number + text if self.number != "0" else text
76
77         self.display.setText(self.number)
78
79     def calculate(self):
80         pass
81
82     def reset(self):
83         self.number = "0"
84         self.result = 0
85         self.history = []
86         self.operator = '' # +,-,*,/
87         self.numberType = 'int' # int与float两种,如果输入了小数点则为实数
88
89 app = QtWidgets.QApplication(sys.argv)
90 ex = Example()
91 ex.show()
92 sys.exit(app.exec_())

PyQt5 简易计算器相关推荐

  1. 基于PyQt5的简易计算器

    基于PyQt5的简易计算器之四 提示:基于PyQt5的简易计算器之一为环境搭建 基于PyQt5的简易计算器之二为Qt Designer使用 基于PyQt5的简易计算器之三为按键的功能实现 基于PyQt ...

  2. Python语言系统学习21:作品——简易计算器

    原文链接:https://blog.csdn.net/weixin_45596188/article/details/103588042 一.程序运行效果 在前面的学习中我们已掌握了对PyQt5和Qt ...

  3. Python制作简易计算器(GUI)---Tkinter

    Python制作简易计算器(GUI)---Tkinter Tkinter简介 Tkinter 与 PyQt5 的比较 Tkinter PyQt5 项目展示 导入模块 函数封装 1. 运算公式的拼接与展 ...

  4. python简易计算器报告_用 Python 实现简易计算器 ( 下 )

    上一篇讲了 用 Python 实现一个计算器的前期准备,从新建项目到 PyQt5安装.配置和使用,最后完成了一个比较丑的计算器界面布局. 本篇文章开始详细讲解后续实现计算器功能的讲解. 主要涉及的知识 ...

  5. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  6. python表达式计算器_Python正则表达式实现简易计算器功能示例

    本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...

  7. JAVA(利用jsp+javabean+servlet)实现简易计算器

    代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  8. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  9. 数据结构:栈实现简易计算器

    文章目录 栈实现简易计算器 思路 代码实现 栈结构 运算方法 测试 栈实现简易计算器 之前的博客已经介绍了栈数据结构,栈有着数据先进后出的特点,因此用于实现简易计算器时相当方便.本博文中将介绍如何用栈 ...

最新文章

  1. 寻找XenApp的下载
  2. 性能测试总结(一)---基础理论篇
  3. java基础----数据类型转化
  4. asp.net 获取全部在线用户_提取在线数据的9个最佳网页抓取工具
  5. 让A超链接无效的办法 阻止元素发生默认的行为
  6. 深度学习2.0-15.随机梯度下降之梯度下降简介
  7. IOS打开pdf文件
  8. 日期截取年月_2019年7月18日 期权交易日志——用小黄人教你理解期权平价公式...
  9. Vue - Nuxt.js 安装引入 WangEditor V5 富文本编辑器最新版本,超详细使用教程(Nuxt.js 项目使用官方提供的示例,页面报错,刷新就会报错navigator is解决方案)
  10. 计算机三级网络技术无纸化考试模拟软件(2019.3 2019.9) 包含激活码 未来教育
  11. 为啥淘宝的商品链接无法分享到微信?
  12. 区块链研究实验室-首次提出如何确保区块链分片技术的数据完整性
  13. 尼康d3200与智能设备 (android) 连接,,尼康D3200有WIFI功能吗
  14. 直线二阶倒立摆之数学建模
  15. Java Cron表达式详解
  16. 2014年中国十大物联网公司排名
  17. 讯景XFX战狼 rx560 4G
  18. oracle11监视器,zabbix-使用orabbix来监控oracle11g
  19. 道指mt4代码_mt4编程代码讲解
  20. mysql数据处理脱敏字段

热门文章

  1. mysql自定义函数实现,自定义oracle中decode方法
  2. java如何调用thrift_java – 我想在一个传输上使用多个服务(Thrift)
  3. c语言实现椭圆曲线算法,椭圆曲线加密算法的C语言设计和实现
  4. 工作流引擎 Activiti 实战系列
  5. win7台式电脑怎么连wifi_win7系统怎么设置WiFi共享
  6. 测试接口时使用PostMan怎么设置全局变量?
  7. html表单的常用属性有哪些,整理HTML5中表单的常用属性及新属性
  8. mysql多表联查分页_sqlserver多表联合查询和多表分页查询的代码讲解
  9. ssl java 客户端_Java SSL生成客户端和服务端crt文件
  10. java wait for_Java p.waitfor()永远等待