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进阶深入理解使用类视图和中间件示例

    Django进阶深入理解使用类视图和中间件示例

    这篇文章主要为大家介绍了Django高级指南之深入理解和使用类视图和中间件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Pytorch 高效使用GPU的操作

    Pytorch 高效使用GPU的操作

    这篇文章主要介绍了Pytorch 高效使用GPU的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python使用正则表达式匹配txt特定字符串(有换行)

    python使用正则表达式匹配txt特定字符串(有换行)

    这篇文章主要给大家介绍了关于python使用正则表达式匹配txt特定字符串的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python学习——内置函数、数据结构、标准库的技巧(推荐)

    python学习——内置函数、数据结构、标准库的技巧(推荐)

    这篇文章主要介绍了python学习——内置函数、数据结构、标准库的技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python -v 报错问题的解决方法

    python -v 报错问题的解决方法

    在本篇文章里小编给大家整理了关于python -v 报错问题的解决方法及相关知识点,有兴趣的朋友们可以学习下。
    2020-09-09
  • Python openpyxl模块实现excel读写操作

    Python openpyxl模块实现excel读写操作

    这篇文章主要介绍了Python openpyxl模块实现excel读写操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • pytorch加载训练好的模型用来测试或者处理方式

    pytorch加载训练好的模型用来测试或者处理方式

    这篇文章主要介绍了pytorch加载训练好的模型用来测试或者处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Django中日期处理注意事项与自定义时间格式转换详解

    Django中日期处理注意事项与自定义时间格式转换详解

    这篇文章主要给大家介绍了关于Django中日期处理注意事项与自定义时间格式转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • python使用自定义user-agent抓取网页的方法

    python使用自定义user-agent抓取网页的方法

    这篇文章主要介绍了python使用自定义user-agent抓取网页的方法,涉及Python使用urllib2模块操作网页的技巧,需要的朋友可以参考下
    2015-04-04
  • Django模板获取field的verbose_name实例

    Django模板获取field的verbose_name实例

    这篇文章主要介绍了Django模板获取field的verbose_name实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论