PyQt5实现简单的计算器
作者:伯纳乌的斯坦森 发布时间:2022-09-27 07:44:39
标签:PyQt5,计算器
本文实例为大家分享了PyQt5实现简单计算器的具体代码,供大家参考,具体内容如下
下面我们将介绍使用python的PyQt5图形界面来编写一个简易的计算器,实现“加,减,乘,除,平方,开方”等运算。
代码如下:
from PyQt5.QtGui import *
from PyQt5.Qt import *
from PyQt5.QtCore import *
import sys,math,string
class Calculator(QWidget):
def __init__(self,parent=None):
QWidget.__init__(self,parent=parent)
self.initUI()
self.last=[]
def initUI(self):
list=['&','**','s','C',7,8,9,'+',4,5,6,'-',1,2,3,'*',0,'.','=','/']
length=len(list)
#创建动态按钮
for i in range (length):
self.button=QPushButton(str(list[i]),self)
#将按钮的clicked信号与onButtonClick函数相连
self.button.clicked.connect(self.onButtonClick)
x=i%4
y=int(i/4)
self.button.move(x*40+10,y*40+100)
self.button.resize(30,30)
#创建文本框
self.lineEdit=QLineEdit('',self)
self.lineEdit.move(10,10)
self.lineEdit.resize(150,70)
self.setGeometry(200,200,170,300)
self.setWindowTitle('计算器')
self.show()
def onButtonClick(self):
t=self.lineEdit.text()#获取文本框文本
new=self.sender().text()
self.last.append(new)
print(self.last)
self.lineEdit.setText(t+new)
if new== "=":
result=eval(str(t))#计算
self.lineEdit.setText(str(result))
if new=='C':
self.lineEdit.setText('')
if new=='sqrt':
self.lineEdit.setText('')
result=math.sqrt(string.atof(t))
self.lineEdit.setText(str(result))
if new=="**":
self.lineEdit.setText('')
result=string.atof(t)**2
self.lineEdit.setText(str(result))
app=QApplication(sys.argv)
w=Calculator()
w.show()
sys.exit(app.exec_())
实现界面如下:
来源:https://blog.csdn.net/weixin_44467002/article/details/94598336
0
投稿
猜你喜欢
- 问题描述使用pandas库的read_excel()方法读取外部excel文件报错, 截图如下好像是缺少了什么方法的样子问题分析分析个啥,
- 如何用javascript来判定选择单选的radio哪个被选择,多选的checkbox有那几个被选中? <!DOCTYPE
- 代码如下:<% '功能:取得文件扩展名 Function getFileExt(sFileNam
- 1. 需要的库, redispip install redis2. 连接Redisimport redisclass RedisCtrl(o
- 一、selenium截取验证码import jsonfrom io import BytesIOimport timefrom test.t
- 首先你要确定错误的原因: 让IE显示详细的出错信息: 菜单--工具--Internet选项--高级--显示友好的HTTP错误信息,去掉这个选
- 文章中有不正确的或者说辞不清的地方,麻烦大家指出了~~~与PHP字符串转义相关的配置和函数如下: 1.magic_quotes_runtim
- 在备份数据库的时候,数据表中可能存在这样的值array('a'='b','c'='d
- 引言这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规则;第二:数据量偏大
- 一、背景今天有个小需求,要确认客户端有没有往服务端发送udp包,但为了减轻工作量,不想每次到机器上手动执行tcpdump抓包命令。于是就写了
- 一、eval()函数是什么?Python的一个内置函数;返回传入字符串的表达式结果(官方)二、eval()函数语法解析三、eval()函数应
- 偶然在Google发现了他们的用户体验设计原则,因此翻译作一下记录。1.以人为本 —他们的生活、他们的工作和他们的梦想2.珍惜每一毫秒的时间
- 动态展示这是一个动态图哦导读兄弟们可以收藏一下哦!情人节可以送出去,肥学找了几朵python写的花给封装好送给大家。不是多炫酷但是有足够的用
- QSS介绍前言QSS即Qt样式表,是用来自定义控件外观的一种机制,QSS大量参考了Css的内容,但QSS的功能要比Css弱得多,体现在选择器
- 目录1. 序列2. 列表2.1 列表的特性2.1.1 列表的连接操作符和重复操作符2.1.3 列表的索引2.1.4 列表的切片2.1.5 列
- 昨天我突发奇想,想用display:inline来实现三列的布局可是搞了半天就是不行。但是理论上是可以的呀(后来才发现是不理解的不深刻,我的
- 如果你有一批IP地址想要获得这些IP具体的信息,比如归属国家,城市等,最好的办法当时是调用现有的api接口来获取,我在之前就写过一篇文章,是
- 前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框架要好用许多,至少不用写xml文件,为了提供定制化运行用例的
- python tkinter按钮Button的使用创建和设置窗口from tkinter import *#创建窗口对象root = Tk(
- 在数据科学和机器学习中,我们通常会处理大量的数据,这些数据可能会超过计算机的内存限制,因此我们需要一种方法来读取大型数据文件。在 Pytho