iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现图形用户界面计算器
  • 607
分享到

Python实现图形用户界面计算器

2024-04-02 19:04:59 607人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例为大家分享了python实现图形用户界面计算器的具体代码,供大家参考,具体内容如下 简易用户图形界面计算器设计思路: 简易图形用户界面计算器的界面和功能设计如下: (1)第

本文实例为大家分享了python实现图形用户界面计算器的具体代码,供大家参考,具体内容如下

简易用户图形界面计算器设计思路:

简易图形用户界面计算器的界面和功能设计如下:

(1)第一行显示输入的运算表达式:第二行显示当前输入的作数或运算结果:第三行到篤七行为计算器按钮·
(2)输入擬作数·按数字0到9和小数点按钮键时,可以输入显示操作数·
(3)操作数编辑。按“-”按钮腱,可以清除当前输入作数的最后一个字符:按“±”按钮键,切换当前输入数的正负号:按"C”按钮腱,清除当前输入的操作数·
(4)输入运算符·按运算符“/、*`、+”按钮键时,显示到目前为止的输入的运算表达式·
(5)执行运算·按“=”按钮键,执行运算,显示运算结果。

程序实现的基本思维和关键技术方法如下:

(1)创建一个继承于Frame的类Calc来实现计算器。

(2)实现界面,在Calc构造函数,创建简易图形用户界面计算器的各个组件对象·

  (2-1)在Calc构造涵数中,创建两个Label对象exprLabel(用于显示运算表达式)和resultLabel(用于显示当前输入操作数或者运算结果)·创建两个StringVar实例对象expr和result,并分别绑定到对应得Label对象。使用grid布局,在第一行和第二行显示两个Label对象。
(2-2)在Calc构造函数中,使用一个二维列表存储按钮标签buttons,然后使用嵌套循环的方法创建和布局各个按钮,在循环中定义事件处理函数cmd(),默认参数为按钮标签buttons([r][c]),调用实例方法click(key),从而实现使用一个函数(使用默认参数)处理所有的按钮事件。

(3)事件处理。在事件处理函数click(self,key)中,按key的值,执行不同的处理逻辑,在构造函数中,创建一个变量startOf%NextOperand(默认为True),用于表示是否开始输入下一个操作数·如果变量startOfNextOperand为True时,按数字键会设置当前输入为0,重新输入新的擬作数:如果变量startOfNextOperand为False时,继续输入当前擬作数的下一个数字字符。

  (3-1)按数字或者小数点按钮键。把输入的字符链接到当前输入作数之后。
(3-2)按"C”按钮键,清除当前输人操作数的最后一个字符。
(3-3)按“±”按钮腱,切换当前输入数的正负号。
(3-4)按"C”按钮键,清除当前输人的操作数。
(3-5)按运算符“/、*、、+”按钮键时,显示到目前为止的输入的运算表达式。
(3-5)按“=”按钮键,使用eval函数执行运算,显示运算结果。

(4)在"if__name___=='__main____'"语句中编写测试代码,创建Calc对象,并显示运行结果。

import tkinter as tk
 
class Calculate(tk.Frame):
    def __init__(self, parent):
        """简易计算器的构造函数"""
        tk.Frame.__init__(self, parent)
        self.pack()
        
        self.startOfNextOperand = True  # 开始输入下一个操作数
 
        # 创建计算过程和结果的标签
        self.expr = tk.StringVar()  #显示运算表达式
        self.expr.set('')
        self.exprLabel = tk.Label(self, font = ('Helvetica', 10),
                                  fg = '#828282', width = 32, anchor='e', textvariable = self.expr)
        self.exprLabel.grid(row = 0, column = 0, columnspan = 4)
        self.result = tk.StringVar()      # 显示结果
        self.result.set(0)  #结果初始为0
        self.resultLabel = tk.Label(self, font = ('Helvetica', 20),
                                    width = 16, anchor='e', textvariable=self.result)
        self.resultLabel.grid(row = 1, column = 0, columnspan = 4)
 
        # 计算器按钮的标签,使用2D列表表示
        buttons = [[ 'CE', 'C', '←', '/'],
                   ['7', '8', '9', '×'],
                   ['4', '5', '6', '-'],
                   ['1', '2', '3', '+'],
                   ['±', '0', '.', '=']]
 
        # 然后使用嵌套的循环的方法创建和布局行各个按钮
        for r in range(5):
            for c in range(4):
                # 定义事件处理函数cmd(),默认参数为按钮标签buttons[r][c]
                def cmd(key = buttons[r][c]):
                    self.click(key)
                b = tk.Button(self, text = buttons[r][c], width=8,command = cmd)
                b.grid(row = r+2, column = c)#前两行显示结果 按钮从第三行开始
                
    def click(self, key):
        """事件处理函数"""
        if key == '=':   #按等号键时, 求值, 并显示结果
            result = eval(self.expr.get() + self.result.get())
            self.result.set(result)
            self.expr.set('')
            self.startOfNextOperand = True
        elif key in '+-/×':
            if key == '×': key = '*'
            resultExpr = self.expr.get() + self.result.get() + key
            self.expr.set(resultExpr)
            self.result.set(0)
            self.startOfNextOperand = True
        elif key == 'C':  # 全部清空, 回到初始状态
            self.expr.set('')
            self.result.set(0)
        elif key == 'CE':  # 清空当前输入
            self.result.set(0)
        elif key == '←':
            oldnum = self.result.get()
            if len(oldnum) == 1: # 只有一个字符
                newnum = 0
            else:
                newnum = oldnum[:-1]
            self.result.set(newnum)
        elif key == '±':  # 正负号,切换正负号
            oldnum = self.result.get()  # 获取原来的值
            if oldnum[0] == '-':
                newnum = oldnum[1:]
            else:
                newnum = '-' + oldnum
            self.result.set(newnum)
        else: # 按数字或者小数点键
            if self.startOfNextOperand:
                self.result.set(0)
                self.startOfNextOperand = False
            oldnum = self.result.get()  # 获取原来的值
            if oldnum == '0':
                self.result.set(key)
            else:
                newnum = oldnum + key
                self.result.set(newnum)
 
if __name__ == '__main__':
    root = tk.Tk()
    root.title('简易计算器')
    calculate = Calculate(root)
    root.mainloop()

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

--结束END--

本文标题: Python实现图形用户界面计算器

本文链接: https://www.lsjlt.com/news/119517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现图形用户界面计算器
    本文实例为大家分享了Python实现图形用户界面计算器的具体代码,供大家参考,具体内容如下 简易用户图形界面计算器设计思路: 简易图形用户界面计算器的界面和功能设计如下: (1)第...
    99+
    2024-04-02
  • Java实现图形界面计算器
    本文实例为大家分享了Java实现图形界面计算器的具体代码,供大家参考,具体内容如下   代码: import javax.swing.*; import java.awt.*; ...
    99+
    2024-04-02
  • Java怎么实现图形界面计算器
    这篇文章主要介绍“Java怎么实现图形界面计算器”,在日常操作中,相信很多人在Java怎么实现图形界面计算器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现图形界面计算器”的疑惑有所帮助!接下来...
    99+
    2023-06-25
  • Java实现简单图形界面计算器
    前言 因为这两天我们的Java实验课程需要做两个小的图形化界面,其中就有一个图形界面的计算器,所以稍微花了点时间做了一个,同时复习了一下Java的基础内容和GUI编程。因为代码中的注...
    99+
    2024-04-02
  • Python GUI 图形用户界面
    目录GUI介绍简单操作tkinter组件介绍向窗体中添加按钮控件使用文本框控件使用菜单控件使用标签控件使用单选按钮和复选按钮组件使用绘图组件GUI介绍 图形用户界面(Graphica...
    99+
    2024-04-02
  • Java图形化界面编程实现简单计算器
    1.简单计算器 使用AWT编程,FrameNORTH区域放置TextField组件,将指定为4行5列GridLayout布局管理器的Panel放置于Frame中部区域,其中填充操作符...
    99+
    2024-04-02
  • java图形界面之怎么实现加法计算器
    这篇文章主要介绍“java图形界面之怎么实现加法计算器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java图形界面之怎么实现加法计算器”文章能帮助大家解决问题。第一步:首先得构思,我们要做什么。加...
    99+
    2023-06-30
  • java图形界面之加法计算器
    JAVA用于开发图形界面应用的 SWING 组件包功能强大,使用方便。接下来我们就使用其写一个简单的图形界面小程序:加法计算器。 第一步: 首先得构思,我们要做什么。加法计算器的话,...
    99+
    2024-04-02
  • python的图形用户界面介绍
    目录python的图形用户界面msgbox的使用ccbox的使用buttonbox的使用buttonbox添加图片choicebox的使用multchoicebox的使用总结pyth...
    99+
    2024-04-02
  • 如何使用Java图形化界面编程实现简单计算器
    这篇文章主要为大家展示了“如何使用Java图形化界面编程实现简单计算器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Java图形化界面编程实现简单计算器”这篇文章吧。1.简单计算器使用A...
    99+
    2023-06-22
  • Java程序图形用户界面设计之容器JFrame
    目录基本容器JFrameJFrame类的常用操作方法创建窗体Java程序设计 图形用户界面 【二】 基本容器JFrame JFrame类的常用操作方法 方法作用public JFra...
    99+
    2024-04-02
  • Python GUI图形用户界面怎么使用
    这篇文章主要介绍“Python GUI图形用户界面怎么使用”,在日常操作中,相信很多人在Python GUI图形用户界面怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python&...
    99+
    2023-07-02
  • JavaGUI图形界面开发实现小型计算器流程详解
    目录一、设计目标二、界面设计三、功能实现四、全部代码五、功能测试六、小结一、设计目标 (1)主要功能:实现简单的加、减、乘、除等双目运算,和开平方、百分数等单目运算 (2)辅助功能:...
    99+
    2022-11-13
    Java GUI 图形界面 计算器 Java 计算器
  • python图形用户界面的示例分析
    小编给大家分享一下python图形用户界面的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python的图形用户界面python的图形用户界面msgbox...
    99+
    2023-06-26
  • Python不用Gui怎么实现图形界面
    这篇文章主要介绍了Python不用Gui怎么实现图形界面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python不用Gui怎么实现图形界面文章都会有所收获,下面我们一起来看看吧。神器出场Web 程序是用 Fl...
    99+
    2023-07-06
  • Java GUI——Java图形用户界面
    Java GUI——Java图形用户界面 1、Java GUI概述 1.1、GUI的前世今生     早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。如:Windows中的DOS窗口。后来,Apple公司率先在电脑...
    99+
    2023-10-08
    java 算法 struts
  • 使用PyQt5设计GUI实现程序图形界面设计
    目录一、熟悉designer——设计界面的神器1.首先打开designer。2.创建窗口3.熟悉各部功能区域二、设计自己的第一个GUI。1.在designer中拖动控件来完善窗口程序...
    99+
    2024-04-02
  • python实现图形界面执行linux命
       学习python图形执行命令,根据网上的资料,自己写了一个,linux图形界面绝对是没有命令好用的,不过,发这个文章是在于学习不在于使用,写得不好的地方,欢迎各位提出意见    [root@localhost ~]# cat cmd...
    99+
    2023-01-31
    图形界面 python linux
  • PyQT5: 构建图形用户界面的Python指南
    PyQt5是一个Python绑定的跨平台C++库,用于创建丰富的图形用户界面(GUI)。它是Qt库的Python接口,Qt库由Qt公司开发,用于开发GUI程序,也称作应用程序框架。在此,我们将详细介绍...
    99+
    2023-09-06
    python qt 开发语言
  • python美化图形化界面设计,pythontkinter界面美化
    大家好,本文将围绕python美化图形化界面设计展开说明,pythontkinter界面美化是一个很多人都想弄明白的事情,想搞清楚python美化输出模块需要先了解以下几个事情。 1、python如何做界面 PyQt,一个基于Qt的Py...
    99+
    2023-10-09
    小发猫
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作