python实现计算器简易版
作者:ztq666666 发布时间:2021-01-25 22:43:15
标签:python,计算器
Python计算器加减乘除,供大家参考,具体内容如下
1、效果图
2、代码
# coding=utf-8
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLCDNumber, QSlider, QVBoxLayout, qApp, \
QMainWindow
from PyQt5.QtCore import Qt
class ForExample(QWidget):
def __init__(self):
super().__init__()
#
self.clu = 0.0
# print('lx',type(self.clu))
self.info = 0.0
print(type(self.info))
self.statusSUN = False
self.statusPoint = False
self.initUI()
def initUI(self):
# 网格布局
grid = QGridLayout()
self.setLayout(grid)
# names = ['清除', '后退', '', '关闭',
# '7', '8', '9', '/',
# '4', '5', '6', '*',
# '1', '2', '3', '-',
# '0', '.', '=', '+']
# 创建一个菜单栏
# menubar = self.menuBar()
# # 添加菜单
# fileMenu = menubar.addMenu('&File')
# LCD显示屏
self.lcd = QLCDNumber(self)
self.lcd.setDigitCount(9)
self.lcd.isRightToLeft()
self.lcd.display(self.info)
grid.addWidget(self.lcd, 0, 0, 2, 4)
# 清除
bc = QPushButton('清除')
bc.clicked.connect(self.def_bc)
grid.addWidget(bc, 2, 0)
# 后退
bk = QPushButton('后退')
bk.clicked.connect(self.def_bk)
grid.addWidget(bk, 2, 1)
# ca = QPushButton('计算')
# ca.clicked.connect(self.def_bc)
# grid.addWidget(ca, 2, 2)
of = QPushButton('关闭')
of.clicked.connect(qApp.quit)
grid.addWidget(of, 2, 3)
#
b7 = QPushButton('7')
b7.clicked.connect(self.def_b7)
grid.addWidget(b7, 3, 0)
b8 = QPushButton('8')
b8.clicked.connect(self.def_b8)
grid.addWidget(b8, 3, 1)
b9 = QPushButton('9')
b9.clicked.connect(self.def_b9)
grid.addWidget(b9, 3, 2)
b4 = QPushButton('4')
b4.clicked.connect(self.def_b4)
grid.addWidget(b4, 4, 0)
b5 = QPushButton('5')
b5.clicked.connect(self.def_b5)
grid.addWidget(b5, 4, 1)
b6 = QPushButton('6')
b6.clicked.connect(self.def_b6)
grid.addWidget(b6, 4, 2)
bExcept = QPushButton('/')
bExcept.clicked.connect(self.def_bExcept)
grid.addWidget(bExcept, 3, 3)
bMultiply = QPushButton('*')
bMultiply.clicked.connect(self.def_bMultiply)
grid.addWidget(bMultiply, 4, 3)
b1 = QPushButton('1')
b1.clicked.connect(self.def_b1)
grid.addWidget(b1, 5, 0)
b2 = QPushButton('2')
b2.clicked.connect(self.def_b2)
grid.addWidget(b2, 5, 1)
b3 = QPushButton('3')
b3.clicked.connect(self.def_b3)
grid.addWidget(b3, 5, 2)
bLess = QPushButton('-')
bLess.clicked.connect(self.def_bLess)
grid.addWidget(bLess, 5, 3)
b0 = QPushButton('0')
b0.clicked.connect(self.def_b0)
grid.addWidget(b0, 6, 0)
bPoint = QPushButton('.')
bPoint.clicked.connect(self.def_bPoint)
grid.addWidget(bPoint, 6, 1)
bsun = QPushButton('+')
bsun.clicked.connect(self.def_bsun)
grid.addWidget(bsun, 6, 3)
bsun = QPushButton('=')
bsun.clicked.connect(self.def_bresult)
grid.addWidget(bsun, 6, 2)
self.setGeometry(300, 300, 250, 250)
self.show()
#############################################################
def def_bc(self):
self.info = 0
self.clu = 0
self.statusSUN = False
self.lcd.display(self.info)
def def_bk(self):
if len(str(self.info)) > 1:
self.info = int(str(self.info)[:-1])
else:
self.info = 0
self.lcd.display(self.info)
def def_b7(self):
if self.info == 0:
self.info = 7
else:
self.info = int(str(self.info) + '7')
self.statusSUN = False
self.lcd.display(self.info)
def def_b8(self):
if self.info == 0:
self.info = 8
else:
self.info = int(str(self.info) + '8')
self.statusSUN = False
self.lcd.display(self.info)
def def_b9(self):
if self.info == 0:
self.info = 9
else:
self.info = int(str(self.info) + '9')
self.statusSUN = False
self.lcd.display(self.info)
# 除
def def_bExcept(self):
pass
def def_b4(self):
if self.info == 0:
self.info = 4
else:
self.info = int(str(self.info) + '4')
self.statusSUN = False
self.lcd.display(self.info)
def def_b5(self):
if self.info == 0:
self.info = 5
else:
self.info = int(str(self.info) + '5')
self.statusSUN = False
self.lcd.display(self.info)
def def_b6(self):
if self.info == 0:
self.info = 6
else:
self.info = int(str(self.info) + '6')
self.statusSUN = False
self.lcd.display(self.info)
# 乘
def def_bMultiply(self):
pass
def def_b1(self):
if self.info == 0:
self.info = 1
else:
self.info = int(str(self.info) + '1')
self.statusSUN = False
self.lcd.display(self.info)
def def_b2(self):
if self.info == 0:
self.info = 2
else:
self.info = int(str(self.info) + '2')
self.statusSUN = False
self.lcd.display(self.info)
def def_b3(self):
if self.info == 0:
self.info = 3
else:
self.info = int(str(self.info) + '3')
self.statusSUN = False
self.lcd.display(self.info)
# 减
def def_bLess(self):
pass
def def_b0(self):
if self.info == 0:
self.info = 0
else:
self.info = int(str(self.info) + '0')
self.statusSUN = False
self.lcd.display(self.info)
def def_bPoint(self):
if self.statusPoint:
pass
else:
self.statusPoint = True
if self.info == 0:
self.info = 0.
else:
self.info = int(str(self.info) + '.')
self.statusSUN = False
self.lcd.display(self.info)
# 等于,根据self.status判断输入的计算符号
def def_bresult(self):
self.clu += self.info
self.lcd.display(self.clu)
self.statusSUN = False
self.info = 0
# 加
def def_bsun(self):
self.clu += self.info
self.lcd.display(self.clu)
self.statusSUN = True
self.info = 0
if __name__ == '__main__':
app = QApplication(sys.argv)
fe = ForExample()
sys.exit(app.exec_()) # coding=utf-8
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout, QLCDNumber, QSlider, QVBoxLayout, qApp, \
QMainWindow
from PyQt5.QtCore import Qt
class ForExample(QWidget):
def __init__(self):
super().__init__()
#
self.clu = 0.0
# print('lx',type(self.clu))
self.info = 0.0
print(type(self.info))
self.statusSUN = False
self.statusPoint = False
self.initUI()
def initUI(self):
# 网格布局
grid = QGridLayout()
self.setLayout(grid)
# names = ['清除', '后退', '', '关闭',
# '7', '8', '9', '/',
# '4', '5', '6', '*',
# '1', '2', '3', '-',
# '0', '.', '=', '+']
# 创建一个菜单栏
# menubar = self.menuBar()
# # 添加菜单
# fileMenu = menubar.addMenu('&File')
# LCD显示屏
self.lcd = QLCDNumber(self)
self.lcd.setDigitCount(9)
self.lcd.isRightToLeft()
self.lcd.display(self.info)
grid.addWidget(self.lcd, 0, 0, 2, 4)
# 清除
bc = QPushButton('清除')
bc.clicked.connect(self.def_bc)
grid.addWidget(bc, 2, 0)
# 后退
bk = QPushButton('后退')
bk.clicked.connect(self.def_bk)
grid.addWidget(bk, 2, 1)
# ca = QPushButton('计算')
# ca.clicked.connect(self.def_bc)
# grid.addWidget(ca, 2, 2)
of = QPushButton('关闭')
of.clicked.connect(qApp.quit)
grid.addWidget(of, 2, 3)
#
b7 = QPushButton('7')
b7.clicked.connect(self.def_b7)
grid.addWidget(b7, 3, 0)
b8 = QPushButton('8')
b8.clicked.connect(self.def_b8)
grid.addWidget(b8, 3, 1)
b9 = QPushButton('9')
b9.clicked.connect(self.def_b9)
grid.addWidget(b9, 3, 2)
b4 = QPushButton('4')
b4.clicked.connect(self.def_b4)
grid.addWidget(b4, 4, 0)
b5 = QPushButton('5')
b5.clicked.connect(self.def_b5)
grid.addWidget(b5, 4, 1)
b6 = QPushButton('6')
b6.clicked.connect(self.def_b6)
grid.addWidget(b6, 4, 2)
bExcept = QPushButton('/')
bExcept.clicked.connect(self.def_bExcept)
grid.addWidget(bExcept, 3, 3)
bMultiply = QPushButton('*')
bMultiply.clicked.connect(self.def_bMultiply)
grid.addWidget(bMultiply, 4, 3)
b1 = QPushButton('1')
b1.clicked.connect(self.def_b1)
grid.addWidget(b1, 5, 0)
b2 = QPushButton('2')
b2.clicked.connect(self.def_b2)
grid.addWidget(b2, 5, 1)
b3 = QPushButton('3')
b3.clicked.connect(self.def_b3)
grid.addWidget(b3, 5, 2)
bLess = QPushButton('-')
bLess.clicked.connect(self.def_bLess)
grid.addWidget(bLess, 5, 3)
b0 = QPushButton('0')
b0.clicked.connect(self.def_b0)
grid.addWidget(b0, 6, 0)
bPoint = QPushButton('.')
bPoint.clicked.connect(self.def_bPoint)
grid.addWidget(bPoint, 6, 1)
bsun = QPushButton('+')
bsun.clicked.connect(self.def_bsun)
grid.addWidget(bsun, 6, 3)
bsun = QPushButton('=')
bsun.clicked.connect(self.def_bresult)
grid.addWidget(bsun, 6, 2)
self.setGeometry(300, 300, 250, 250)
self.show()
#############################################################
def def_bc(self):
self.info = 0
self.clu = 0
self.statusSUN = False
self.lcd.display(self.info)
def def_bk(self):
if len(str(self.info)) > 1:
self.info = int(str(self.info)[:-1])
else:
self.info = 0
self.lcd.display(self.info)
def def_b7(self):
if self.info == 0:
self.info = 7
else:
self.info = int(str(self.info) + '7')
self.statusSUN = False
self.lcd.display(self.info)
def def_b8(self):
if self.info == 0:
self.info = 8
else:
self.info = int(str(self.info) + '8')
self.statusSUN = False
self.lcd.display(self.info)
def def_b9(self):
if self.info == 0:
self.info = 9
else:
self.info = int(str(self.info) + '9')
self.statusSUN = False
self.lcd.display(self.info)
# 除
def def_bExcept(self):
pass
def def_b4(self):
if self.info == 0:
self.info = 4
else:
self.info = int(str(self.info) + '4')
self.statusSUN = False
self.lcd.display(self.info)
def def_b5(self):
if self.info == 0:
self.info = 5
else:
self.info = int(str(self.info) + '5')
self.statusSUN = False
self.lcd.display(self.info)
def def_b6(self):
if self.info == 0:
self.info = 6
else:
self.info = int(str(self.info) + '6')
self.statusSUN = False
self.lcd.display(self.info)
# 乘
def def_bMultiply(self):
pass
def def_b1(self):
if self.info == 0:
self.info = 1
else:
self.info = int(str(self.info) + '1')
self.statusSUN = False
self.lcd.display(self.info)
def def_b2(self):
if self.info == 0:
self.info = 2
else:
self.info = int(str(self.info) + '2')
self.statusSUN = False
self.lcd.display(self.info)
def def_b3(self):
if self.info == 0:
self.info = 3
else:
self.info = int(str(self.info) + '3')
self.statusSUN = False
self.lcd.display(self.info)
# 减
def def_bLess(self):
pass
def def_b0(self):
if self.info == 0:
self.info = 0
else:
self.info = int(str(self.info) + '0')
self.statusSUN = False
self.lcd.display(self.info)
def def_bPoint(self):
if self.statusPoint:
pass
else:
self.statusPoint = True
if self.info == 0:
self.info = 0.
else:
self.info = int(str(self.info) + '.')
self.statusSUN = False
self.lcd.display(self.info)
# 等于,根据self.status判断输入的计算符号
def def_bresult(self):
self.clu += self.info
self.lcd.display(self.clu)
self.statusSUN = False
self.info = 0
# 加
def def_bsun(self):
self.clu += self.info
self.lcd.display(self.clu)
self.statusSUN = True
self.info = 0
if __name__ == '__main__':
app = QApplication(sys.argv)
fe = ForExample()
sys.exit(app.exec_())
来源:https://blog.csdn.net/qq_23034755/article/details/111189398


猜你喜欢
- SqlServer 在事务中获得自增ID实例代码在sqlserver 中插入数据时,如何返回自增的主键ID,方式有很多,这里提
- 本文实例讲述了Python分支语句与循环语句应用。分享给大家供大家参考,具体如下:一、分支语句1、if else语句语法:if 条件判断:
- Cookie是一种小型文本文件,存储在用户计算机中,用于跟踪用户在互联网上的活动。Cookie通常由网站创建,以便记住用户的偏好和登录状态,
- 1.配置anaconda环境以下内容在下载完anaconda后实现快捷键win+r,打出命令行cmd,进入黑色 界面输入conda info
- 某位 A 同学发了我一张截图,问为何结果中出现了负数?看了图,我第一感觉就是数据溢出了。数据超出能表示的最大值,就会出现奇奇怪怪的结果。然后
- 本文实例讲述了Python聚类算法之基本K均值运算技巧。分享给大家供大家参考,具体如下:基本K均值 :选择 K 个初始质心,其中 K 是用户
- Git的工作方式分为集中式工作流、功能分支工作流、Gitflow工作流和Forking,其中集中式工作流和功能分支工作流是已经使用过的,Gi
- 需求背景:进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。例如:解
- 1. 信号与槽(Signals and slots)信号与槽机制是 PyQt 的核心机制,用于对象之间的通信,也就是实现函数之间的自动调用。
- 前言在没有深度使用函数回调的经验的时候,去看这些内容还是有一点吃力的。由于Node.js独特的异步特性,才出现了“回调地狱”的问题,这篇文章
- 1. 读取CSV文件 csv.reader()该方法的作用相当于就是通过 ',' 分割csv格式的数据,并将分割好的每行数据
- 本文实例讲述了wxPython框架类和面板类的使用方法,分享给大家供大家参考。具体分析如下:实现代码如下:import wx c
- 1.建立连接字符串,里面包含数据库名称、用户名和密码2.建立操作字符串,里面是对数据操作的SQL语句3.建立Connection,用连接字符
- ADB是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。ADB主要功能有:
- ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已
- python保存文本文件的方法:使用python内置的open()类可以打开文本文件,向文件里面写入数据可以用write()函数,写完之后,
- 如果你没有序列号,那么就只能在上面的三种free edition(Enterprise Evaluation、Express、Express
- 欢迎来到 Python Httpx 教程。在本教程中,我们将深入探讨 Httpx 库,并学习如何使用它来构建高性能的异步网络应用程序。什么是
- 目录概述自动建库实现步骤具体思路代码实现数据库初始化器DatabaseInitializer简单的主程序FlywayApplication执
- pytest的setup与teardown1)pytest提供了两套互相独立的setup 与 teardown和一对相对自由的setup与t