广州证券

PyQt5实现简单的计算器

 更新时间:2020年05月30日 11:01:29   转载 作者:伯纳乌的斯坦森  
这篇文章主要为大家详细介绍了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_())

实现界面如下:

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

广州证券相关的文章

  • 详解Django缓存处理中Vary头部的使用

    详解Django缓存处理中Vary头部的使用

    这篇文章主要介绍了详解Django缓存处理中Vary头部的使用,Django是最具人气的Python web开发框架,需要的朋友可以参考下
    2015-07-07
  • 对python 合并 累加两个dict的实例详解

    对python 合并 累加两个dict的实例详解

    今天小编就为大家分享一篇对python 合并 累加两个dict的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 使用django-guardian实现django-admin的行级权限控制的方法

    使用django-guardian实现django-admin的行级权限控制的方法

    这篇文章主要介绍了使用django-guardian实现django-admin的行级权限控制的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Python 获取指定文件夹下的目录和文件的实现

    Python 获取指定文件夹下的目录和文件的实现

    这篇文章主要介绍了Python 获取指定文件夹下的目录和文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python中字符串对齐方法介绍

    Python中字符串对齐方法介绍

    这篇文章主要介绍了Python中字符串对齐方法介绍,本文介绍Python字符串内置方法ljust、rjust、center的用法,需要的朋友可以参考下
    2015-05-05
  • Python实现针对中文排序的方法

    Python实现针对中文排序的方法

    这篇文章主要介绍了Python实现针对中文排序的方法,结合实例形式较为详细的分析了Python针对中文进行排序操作出现的问题与相关处理技巧,需要的朋友可以参考下
    2017-05-05
  • Python for循环通过序列索引迭代过程解析

    Python for循环通过序列索引迭代过程解析

    这篇文章主要介绍了Python for循环通过序列索引迭代过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python实现壁纸批量下载代码实例

    python实现壁纸批量下载代码实例

    本篇文章通过代码实例给大家分享了用python实现壁纸批量下载这个功能,有兴趣的朋友参考下吧。
    2018-01-01
  • 解决Tensorboard 不显示计算图graph的问题

    解决Tensorboard 不显示计算图graph的问题

    今天小编就为大家分享一篇解决Tensorboard 不显示计算图graph的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python的pycurl包用法简介

    Python的pycurl包用法简介

    这篇文章主要介绍了Python的pycurl包用法简介,文中罗列了其下模块中的一些常用方法,需要的朋友可以参考下
    2015-11-11

最新评论

深高CWB1(580014)

上汽CWB1(580016)

赣粤CWB1(580017)

石化CWB1(580019)

上港CWB1(580020)

青啤CWB1(580021)

国电CWB1(580022)

康美CWB1(580023)

宝钢CWB1(580024)

葛洲CWB1(580025)