使用PyQt5设计一款简单的计算器

这篇具有很好参考价值的文章主要介绍了使用PyQt5设计一款简单的计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、环境配置:

二、代码实现

三、主程序

四、总结


        本文使用PyQt5设计一款简单的计算器,可以通过界面交互实现加减乘除的功能,希望能够给初学者一些帮助。主要涉及的知识点有类的定义与初始化、类的成员函数、pyqt5的信号与槽函数等。

具体界面如下:

使用PyQt5设计一款简单的计算器

一、环境配置:

使用pip指令安装pyqt5,此处选择5.12.0版本,因为笔者安装的spyder版本为4.1.5,过高的版本不兼容:

pip install PyQt5==5.12.0 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple
pip install PyQt5designer -i https://pypi.douban.com/simple

二、代码实现

1、引入依赖库。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QGridLayout, QLineEdit, QPushButton
from PyQt5.QtCore import Qt

2、定义计算器(Calculator)类,成员函数的功能如下表所示。

函数名称 函数功能

__init__()

初始化函数,初始化窗口名称、尺寸、按钮名称、位置、信号响应函数等。

button_click(self, number)

选择数字与小数点

button_clear(self)

实现屏幕以及缓存清空的功能

button_add(self)

实现两个数相加的功能

button_subtract(self)

实现两个数相减的功能

button_multiply(self)

实现两个数相乘的功能

button_divide(self)

实现两个数相除的功能

button_equal(self)

首先判断执行的运算操作,调用对应的函数进行计算,并将结果显示在文本框中
class Calculator(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("计算器")
        self.setFixedSize(300, 350)   # 固定窗口大小

        central_widget = QWidget(self)
        self.setCentralWidget(central_widget)

        main_layout = QGridLayout()
        central_widget.setLayout(main_layout)

        # 添加文本框
        self.screen = QLineEdit()
        self.screen.setFixedHeight(40)
        self.screen.setAlignment(Qt.AlignRight)
        self.screen.setReadOnly(True)
        main_layout.addWidget(self.screen, 0, 0, 1, 4)

        # 添加按钮
        button_1 = QPushButton("1", clicked=lambda: self.button_click("1"))
        button_2 = QPushButton("2", clicked=lambda: self.button_click("2"))
        button_3 = QPushButton("3", clicked=lambda: self.button_click("3"))
        button_4 = QPushButton("4", clicked=lambda: self.button_click("4"))
        button_5 = QPushButton("5", clicked=lambda: self.button_click("5"))
        button_6 = QPushButton("6", clicked=lambda: self.button_click("6"))
        button_7 = QPushButton("7", clicked=lambda: self.button_click("7"))
        button_8 = QPushButton("8", clicked=lambda: self.button_click("8"))
        button_9 = QPushButton("9", clicked=lambda: self.button_click("9"))
        button_0 = QPushButton("0", clicked=lambda: self.button_click("0"))
        button_add = QPushButton("+", clicked=self.button_add)
        button_subtract = QPushButton("-", clicked=self.button_subtract)
        button_multiply = QPushButton("*", clicked=self.button_multiply)
        button_divide = QPushButton("/", clicked=self.button_divide)
        button_clear = QPushButton("清除", clicked=self.button_clear)
        button_equal = QPushButton("=", clicked=self.button_equal)

        main_layout.addWidget(button_7, 1, 0)
        main_layout.addWidget(button_8, 1, 1)
        main_layout.addWidget(button_9, 1, 2)
        main_layout.addWidget(button_divide, 1, 3)

        main_layout.addWidget(button_4, 2, 0)
        main_layout.addWidget(button_5, 2, 1)
        main_layout.addWidget(button_6, 2, 2)
        main_layout.addWidget(button_multiply, 2, 3)

        main_layout.addWidget(button_1, 3, 0)
        main_layout.addWidget(button_2, 3, 1)
        main_layout.addWidget(button_3, 3, 2)
        main_layout.addWidget(button_subtract, 3, 3)

        main_layout.addWidget(button_0, 4, 0)
        main_layout.addWidget(button_clear, 4, 1, 1, 2)
        main_layout.addWidget(button_add, 4, 3)

        main_layout.addWidget(button_equal, 5, 0, 1, 4)

        # 初始化变量
        self.first_num = None
        self.operation = None

    def button_click(self, number):
        current = self.screen.text()
        self.screen.setText(current + number)

    def button_clear(self):
        self.screen.clear()
        self.first_num = None
        self.operation = None

    def button_add(self):
        self.first_num = float(self.screen.text())
        self.screen.clear()
        self.operation = "add"

    def button_subtract(self):
        self.first_num = float(self.screen.text())
        self.screen.clear()
        self.operation = "subtract"

    def button_multiply(self):
        self.first_num = float(self.screen.text())
        self.screen.clear()
        self.operation = "multiply"

    def button_divide(self):
        self.first_num = float(self.screen.text())
        self.screen.clear()
        self.operation = "divide"

    def button_equal(self):
        second_num = float(self.screen.text())
        self.screen.clear()

        if self.operation == "add":
            result = self.first_num + second_num
        elif self.operation == "subtract":
            result = self.first_num - second_num
        elif self.operation == "multiply":
            result = self.first_num * second_num
        elif self.operation == "divide":
            if second_num == 0:
                result = "除数不能为 0"
            else:
                result = self.first_num / second_num

        self.screen.setText(str(result))

三、主程序

主程序首先创建窗口对象,接着创建计算器对象并显示窗口,最后设定终止条件。

if __name__ == "__main__":
    app = QApplication(sys.argv)
    calc = Calculator()
    calc.show()
    sys.exit(app.exec_())

四、总结

这个计算器的优点:

  • 采用了PyQt5模块和Python语言进行设计,实现较为简单,易于理解和修改。
  • 可以进行基本运算操作,包括加、减、乘、除等。

这个计算器的缺点:

  • 功能较为简单,只能进行基础的数学运算,无任何高级功能。
  • 输入输出仅支持数字和基本的加减乘除运算符号,不支持其他字符、函数或变量。
  • 在除数为0时无法做出错误提示,故看起来好像可以除以0一样。

综上所述,该计算器适合作为一个小型的实验项目或界面设计入门示例,但是并不够强大,不能满足更多复杂应用场景的需求。文章来源地址https://www.toymoban.com/news/detail-434879.html

到了这里,关于使用PyQt5设计一款简单的计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 JavaScript 创建一个简单的计算器

    介绍: JavaScript 是一种广泛应用于网页开发的脚本语言,它具有灵活、动态和强大的特性。本文将演示如何使用 JavaScript 创建一个简单的计算器,并实现基本的加减乘除操作。 正文: javascript 解释: 以上代码是一个简单的 HTML 页面,其中包括两个输入框和四个按钮,用于实

    2024年02月03日
    浏览(45)
  • 使用C语言构造一个简单计算器

    本节我们用小学生知识来制作一个简单的计算器,可以运算加,减,乘,除,以及余数的运算。 在这节代码中用到switch语句,因为要输入运算符,所以注意%c的对应 接下来上代码: 这里的话我们简单演示一下乘法的运算: 如果用其他的计算符号直接更改即可,这里使用双精

    2024年02月12日
    浏览(38)
  • 使用Vue三种方法实现简单计算器

    代码实现了一个简单的计算器,用户可以在输入框中输入两个数字,选择一个操作符,并点击“等于”按钮,Vue.js会根据用户的输入进行计算,并将结果显示在另一个输入框中。 以下是效果图 第一种:使用methods方法实现 1:首先,引入Vue.js库。在代码中使用了script 标签引入

    2024年02月08日
    浏览(42)
  • 使用Python编写简单的小程序、成绩计算器

    成绩计算器程序需要两个分数,以百分比表示 - 一个用于项目,一个用于考试。 项目和考试都为最终评估成绩贡献了50%。 程序应从中计算出总体百分比,并使用下表中的数据计算出最终成绩: 例 项目分数 - 78%,考试分数 - 65%。 最终成绩 = 71.5% ((78 + 65)*0.5),最终成绩

    2024年02月11日
    浏览(27)
  • 基于Android Studio 实现计算器(简单易上手使用技术多)

    🍅 文章末尾有获取完整项目源码方式 🍅         本项目是一个基于Android Studio和Java语言开发的简单计算器应用。应用包含启动页面、登陆注册页面、首页、计算器页面和我的页面等多个功能模块。         通过这个项目的实践,希望这个项目能够帮助你入门Android开

    2024年04月12日
    浏览(49)
  • 【简单】使用ChatGPT和QT从零开始构建一个计算器应用

    在这篇博文中,我将向大家展示如何使用ChatGPT和Qt来构建一个完整的计算器应用。我们将从零开始,逐步引导您完成整个项目,包括需求分析、软件设计、代码编写等环节。该项目代码全部由GPT编写,10分钟完成。 本项目旨在使用ChatGPT和Qt技术构建一个功能完备的计算器应用。

    2024年02月11日
    浏览(49)
  • 移动开发作业三:使用Android studio来实现简单的计算器

    一.实验要求 结合所学内容利用Android studio来设计一个开发实例,这里去我选择做一个简易的计算器,可以初步实现加减乘除。 二.实验功能 该计算器与我们平常手机上的计算器一样,可以进行加减乘除操作。 三.实验过程 1.首先是关于计算器的布局 在layout文件下的drawable文件

    2024年02月02日
    浏览(36)
  • Python小姿势 - Python学习笔记:如何使用Python创建一个简单的计算器

    Python学习笔记:如何使用Python创建一个简单的计算器 在本教程中,我们将学习如何使用Python创建一个简单的计算器。我们将学习如何使用Python的内置函数input()和print(),以及如何使用Python的运算符来完成这个项目。 首先,让我们来看看如何使用input()函数来获取用户输入。i

    2024年02月01日
    浏览(49)
  • Qt实现简单计算器

    三级项目想用Qt做界面。 为了熟悉一下Qt操作,历时8h做了个计算器。 没用到数据库,布的控件也比较简单。 所以calculator.pro和widget.ui就不放了(太长了占地方) 文件压缩包放在下一篇了,需要自取。 自学时间较短,有很多不足欢迎指正。 ⭐:del按键上的图片用的是绝对路

    2024年02月11日
    浏览(38)
  • Java编写简单计算器

    本文用 Java 的 swing 来实现一个简单计算器,主要内容为图形用户界面GUI的实现以及运算表达式核心算法的设计编写。 程序运行环境为Windows10 ,编译环境为IntelliJ IDEA Community Edition 2022.2.3 一、具体功能: 1、:输入,输出  输入:允许输入带有括号的完整计算式(例 8*(4-95)

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包