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获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
Python 的 with 语句详解
Jun 13 Python
python私有属性和方法实例分析
Jan 15 Python
python操作ie登陆土豆网的方法
May 09 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
python矩阵转换为一维数组的实例
Jun 05 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
Python中turtle库的使用实例
Sep 09 Python
python基于opencv 实现图像时钟
Jan 04 Python
浅谈Python中对象是如何被调用的
Apr 06 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
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
php 文章调用类代码
2011/08/11 PHP
php图片缩放实现方法
2014/02/20 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
php实现encode64编码类实例
2015/03/24 PHP
php检测url是否存在的方法
2015/04/14 PHP
JavaScript自定义事件介绍
2013/08/29 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
Python中集合类型(set)学习小结
2015/01/28 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
室内设计专业自荐信
2014/05/31 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
大学生村官个人总结
2015/02/15 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书