PyQt5实现简单的计算器


Posted in Python onMay 30, 2020

本文实例为大家分享了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_())

实现界面如下:

PyQt5实现简单的计算器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 中的列表解析和生成表达式
Mar 10 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
Mar 31 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
Python程序暂停的正常处理方法
Nov 07 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python 负数取模运算实例
Jun 03 Python
pandas apply多线程实现代码
Aug 17 Python
python excel多行合并的方法
Dec 09 Python
PyQt5实现登录页面
May 30 #Python
Python网页解析器使用实例详解
May 30 #Python
PyQt5实现画布小程序
May 30 #Python
Java ExcutorService优雅关闭方式解析
May 30 #Python
Python定时任务APScheduler原理及实例解析
May 30 #Python
Python生成器next方法和send方法区别详解
May 30 #Python
Python新手学习标准库模块命名
May 29 #Python
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
JavaScript静态的动态
2006/09/18 Javascript
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
图片自动缩小 点击放大
2008/07/07 Javascript
javascript document.compatMode兼容性
2010/02/23 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python中动态创建类实例的方法
2017/03/24 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
python爬取代理ip的示例
2020/12/18 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
《灰椋鸟》教学反思
2014/04/27 职场文书
个园导游词
2015/02/04 职场文书
教师自荐信范文
2015/03/06 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
js之ajax文件上传
2021/05/13 Javascript
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
MySQL 条件查询的常用操作
2022/04/28 MySQL