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之模块的加载
Oct 24 Python
python中readline判断文件读取结束的方法
Nov 08 Python
python控制台中实现进度条功能
Nov 10 Python
Django Highcharts制作图表
Aug 27 Python
Python常用库推荐
Dec 04 Python
PyQt5每天必学之进度条效果
Apr 19 Python
Python中文编码知识点
Feb 18 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python__new__内置静态方法使用解析
Jan 07 Python
python matplotlib库的基本使用
Sep 23 Python
Python和Bash结合在一起的方法
Nov 13 Python
在pyCharm中下载第三方库的方法
Apr 18 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
PHP面向对象教程之自定义类
2014/06/10 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
js判断变量是否未定义的代码
2020/03/28 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
DOM 事件流详解
2015/01/20 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python主线程捕获子线程的方法
2018/06/17 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
幼儿园消防安全制度
2014/01/26 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
党员公开承诺书2015
2015/01/21 职场文书
社区党员干部承诺书
2015/05/04 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL