首页 > 编程语言 >基于Python+tkinter实现一个简易计算器桌面软件

基于Python+tkinter实现一个简易计算器桌面软件

时间:2023-09-15 09:24:13浏览次数:43  
标签:tkinter Python self 按钮 文本框 计算器 entry button

你是否想过自己能够开发一个桌面小工具?如果答案是“是”,那么你来对地方了!今天,我们要一起使用Python中的tkinter库,来创建一个简易的桌面计算器。

1. 为什么选择tkinter?

tkinter是Python的标准GUI库。对于初学者来说,它非常友好,因为它提供了大量的预制部件,例如按钮、文本框等,这让开发图形用户界面变得异常简单。

2. 开始我们的计算器之旅

首先,引入必要的库:

import tkinter as tk
from tkinter import ttk

然后,我们创建一个名为SimpleCalculator的类,继承自tk.Tk。

class SimpleCalculator(tk.Tk):
    def __init__(self):
        super().__init__()

        self.title("简易计算器")  # 设置窗口标题
        self.geometry("300x250")  # 设置窗口大小

现在,我们为这个类添加一个方法create_widgets,用于添加和布局界面部件:

def create_widgets(self):
    # 创建一个文本框,用于显示和输入数据
    self.entry = ttk.Entry(self, width=30)
    self.entry.grid(row=0, column=0, columnspan=4, pady=20)  # 定位文本框的位置

    self.create_buttons()  # 创建按钮

下面是我们的按钮创建方法。我们定义了一个列表,列出了每个按钮的文本以及其在网格布局中的行和列位置:


def create_buttons(self):
    # 按钮及其位置的列表
    buttons = [
        ("7", 1, 0),
        ("8", 1, 1),
        ("9", 1, 2),
        ("+", 1, 3),
        ...
    ]

    for (text, row, col) in buttons:
        self.create_button(text, row, col)  # 创建每一个按钮

对于每个按钮,我们会使用create_button方法进行创建,并为其绑定一个事件:

def create_button(self, text, row, col):
    # 创建按钮,并绑定button_click事件
    button = ttk.Button(self, text=text, width=7, command=lambda: self.button_click(text))
    button.grid(row=row, column=col, padx=5, pady=5)  # 定位按钮位置

在用户点击按钮时,button_click方法会被触发:

def button_click(self, char):
    current = self.entry.get()  # 获取文本框当前的内容

    if char == "=":
        # 尝试计算表达式的结果
        try:
            result = eval(current)
            self.entry.delete(0, tk.END)  # 清空文本框
            self.entry.insert(0, str(result))  # 插入结果
        except:
            self.entry.delete(0, tk.END)  # 清空文本框
            self.entry.insert(0, "错误")  # 显示错误信息
    elif char == "C":
        self.entry.delete(0, tk.END)  # 清空文本框
    else:
        self.entry.insert(tk.END, char)  # 向文本框插入字符

最后,为了启动计算器应用,我们创建一个SimpleCalculator的实例,并启动tkinter的事件循环:

if __name__ == "__main__":
    app = SimpleCalculator()
    app.mainloop()

3. 演示视频+完整代码

演示视频如下,由于篇幅所限,如需完整代码,免费获取地址:https://mp.weixin.qq.com/s/_GffebF6RFddxBbaZlwfsw

20230911111419

结语

这就是我们的简易计算器!虽然它看起来简单,但对于初学者来说,这是一个很好的开始。你可以在此基础上增加更多的功能,例如支持更多的数学运算、历史记录或皮肤切换等。
如果你对编程感到兴趣,我鼓励你继续探索。Python和tkinter为你提供了强大的工具和无限的可能性。不要停下脚步,继续探索、学习和创造吧!

标签:tkinter,Python,self,按钮,文本框,计算器,entry,button
From: https://www.cnblogs.com/shiqianlong/p/17704064.html

相关文章

  • gopup:Python公开数据仓库
    GoPUP支持Python3.7+,旨在使获取数据尽可能方便,主要用于学术研究目的。GoPUP项目所采集的数据皆来自公开的数据源,不涉及任何个人隐私数据和非公开数据。同时本项目提供的数据接口及相关数据仅用于学术研究,任何个人、机构及团体使用本项目的数据接口及相关数据请注意商业风险。......
  • python实现电影院座位预约
    功能需求用户进入电影院座位预约系统后,系统会给用户四个模块:预约座位,取消预约,查看预约情况,退出系统。功能分析1:定义一个主函数,用于用户进入预约系统后,供用户选择模块2:分别定义两个函数,座位预约函数和座位取消预约函数3:座位预约函数和取消预约函数需要通过用户输入的行数和列数费别......
  • 计算器思想-中缀表达式转化为后缀表达式
    计算机思维和人的思维的不同对于一个算式3+2*(4-3)/5人的思维是根据括号和符号优先级,优先计算括号中的数据,在进行乘法和除法,在处理加法运算但是计算机的思维是线性的,计算机会按照算式的前后顺序,从前往后进行运算,这样会导致运算结果错误计算机如何套用人的运算思维想要让计算机......
  • 个人项目:Python实现简易论文查重
    这个作业属于哪个课程计科1/2班这个作业要求在哪里个人项目这个作业的目标按照规定流程完成个人项目,完整体验制作项目制作相关流程,制作简易论文查重系统GitHub作业链接:GitHub作业链接1.PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)......
  • Python学习笔记-Python文件操作
    文件的编码简介计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?使用编码技术(密码本)将内容翻译成0和1存入。编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。计算机中有许多可用编码:UTF-8GBKBig5等不同的编码,将......
  • python网络爬虫——爬取东方财富网股票数据并分析
     一、选题的背景:股票数据分析是一个非常重要的领域,它可以帮助投资者做出更明智的投资决策。选取这个选题的背景主要有以下几点:1.市场波动:股票市场不断波动,价格的涨跌对投资者来说是一个重要的影响因素。通过对股票数据进行分析,可以揭示市场的走势和各种趋势,帮助投资者更好地......
  • 20230914-python爬取数据写入到excel
    python爬取数据写入到excel1。查看是否安装了相应的插件 piplist2。查看是否安装了  pandas     (安装命令在cmd中安装,pipinstallpandas)3。查看是否安装 openpyxl      pipinstallopenpyxl ####写入excelimportpandasaspddf=pd.DataFra......
  • Python脚本与window命令脚本结合
    前言经常制作各种python脚本处理文件夹里的各种数据数据,但是每次更换一次文件夹就要改一次脚本里的文件路径,这样感觉效率并不高,偶然的一个机会,看到了利用window命令脚本和Python结合,可以搞出类似界面拖拽式输入的方式。操作方式创建一个.cmdwindow命令脚本编写如下代码:@ec......
  • python魔术方法
    python中的魔术方法Python中的魔术方法是特殊命名的方法,它们以双下划线开头和结尾,并具有特殊的用途。以下是Python中常用的一些魔术方法:__getitem__:用于获取对象的索引值对应的值,配合索引操作([])使用。__setitem__:用于设置对象的索引值对应的值,配合索引操作([])使用。__de......
  • Python常用命令总结(一)
    Python语言特点开源、免费面向过程、面向对象、交互式编程面向过程:以事情或解决问题的过程为中心,主要考虑解决问题的思路和步骤面向对象:以事务为中心,主要考虑解决问题时涉及的事务的特征和行为获取键盘信息input()在终端显示信息print()整数类型int浮点类型float布尔类型bool字......