python的Tkinter库简单应用——开发一个简易计算器

本文介绍利用Python的Tkinter库开发简易计算器。实验准备包括选用Jupyter Notebook作为开发软件,使用Tkinter实现图形界面。开发步骤有引入Tkinter和math库,进行界面设计,实现Tkinter库的调用。使用Tkinter可减少代码行数,思路清晰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用python的Tkinter库开发一个简易计算器


前言

任何主流语言都可以开发一个简易的计算器,本篇我们将选用python来开发!附源代码


提示:以下是本篇文章正文内容,下面案例可供参考

一、实验准备

1.开发软件选用——jupyter notebook
能编写python的软件有很多,本次实验我使用,当你要使用jupyter notebook首先要安装anaconda,安装的教程如下Anaconda 的安装教程(图文)但要注意的是Anaconda国内安装的清华源不可用,需要用到清华镜像,可在百度自查,这里就不附链接了。

2.图形界面的实现——Tkinter

当我们用python实现图形界面是,我们不得不用到的包就是Tkinter。Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。因为其语言简单易读,容易上手,这也是我选择python来做一个计算器的原因。若想详细了解Tkinter,可以看下大佬的详解,附链接:Python GUI之tkinter窗口视窗教程大集合

二、开发步骤步骤

1.引入库

这时候我们要调用python的Tkinter和math两个包,需要注意的是在python3以后Tkinter的调用‘T’是大写!!!不然编译会报错。
代码如下:

import math
import tkinter as tk

2.界面设计

程序设计主要分两大部分,一部分是界面设计,另一部分则是实现计算。首先我们来看下界面设计。首先我们先搭建一个框架,可以利用循环来补入按键,在这之前我们要注意给计算器初始化
代码如下(示例):

class Calc(tk.Tk):
    """计算器窗体类"""
    def __init__(self):
        """初始化实例"""
        tk.Tk.__init__(self)
        self.title("我的计算器")
        self.memory = 0  # 暂存数值
        self.Demo()

    def Demo(self):
        """创建界面"""
        btn_list = ["C", "(", ")", "/",
                    "7", "8", "9", "*",
                    "4", "5", "6", "-",
                    "1", "2", "3", "+",
                    "+/-", "0", ".", "="]
        r = 1
        c = 0
        for b in btn_list:
            self.button = tk.Button(self, text=b, width=5,
                                    command=(lambda x=b: self.operate(x)))
            self.button.grid(row=r, column=c, padx=3, pady=6)
            c += 1
            if c > 3:
                c = 0
                r += 1
        self.entry = tk.Entry(self, width=24, borderwidth=2,
                              bg="black", font=("黑体", 11))
        self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

接下来就是实现算法部分了,在以往c++中为了实现一个多项式如:2-(3-2),当一下子多项式输入在计算器中,这一类关于括号优先级问题就得被考虑,还需要将数字和符号分别压入堆栈,判断优先级,当我们使用python时,则可以通过Tkinter文本框(entry)来实现entry的用法有很多,可看Python XML解析来了解更多,这里就不一一赘述了
代码如下:

def operate(self, key):
        """press the button"""
        if key == "=":  # 输出结果
            result = eval(self.entry.get())#获取文本框输入的值(值为=)
            self.entry.insert(tk.END, " = " + str(result))#在’=‘后输出计算结果
        elif key == "C":  # 清空输入框
            self.entry.delete(0, tk.END)#将结果清零
        elif key == "+/-":  # 取相反数
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            elif self.entry.get()[0] == "-":
                self.entry.delete(0)
            else:
                self.entry.insert(0, "-")
        else:  # 其他键
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, key)
if __name__ == "__main__":
    Calculator().mainloop()

3.关键——实现Tkinter库的调用

python提供了多个图形开发界面的库,常用的库就用Tkinter,使用Tkinter可以大大减少代码的行数,思路也较为清晰简单,简单易读,但在编写过程中,主要通过运用Tkinter的函数,这也使得程序的算法没有那么的突出。


总结

本文仅仅简单介绍了Tkinter的使用,来开发一个简易的计算器。大家可以根据可以通过下面的源代码,运行下来试一下,另附演示动图。另外对于本文中提到的Tkinter库有感兴趣的可以看下上面的链接,很详细

动态演示

源代码

import tkinter as tk
class Calculator(tk.Tk):
    """计算器窗体类"""
    def __init__(self):
        """初始化实例"""
        tk.Tk.__init__(self)
        self.title("我的计算器")
        self.memory = 0  # 暂存数值
        self.Demo()
        
    def Demo(self):
        """Create the Demo"""
        btn_list = ["C", "(", ")", "/",
                    "7", "8", "9", "*",
                    "4", "5", "6", "-",
                    "1", "2", "3", "+",
                    "+/-", "0", ".", "="]
        r = 1
        c = 0
        for b in btn_list:
            self.button = tk.Button(self, text=b, width=5,
                                    command=(lambda x=b: self.operate(x)))
            self.button.grid(row=r, column=c, padx=3, pady=6)
            c += 1
            if c > 3:
                c = 0
                r += 1
        self.entry = tk.Entry(self, width=21, borderwidth=3,
                              bg="light blue", font=("黑体", 11))
        self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6)

    def operate(self, key):
        """press the button"""
        if key == "=":  # 输出结果
            result = eval(self.entry.get())#获取文本框输入的值(值为=)
            self.entry.insert(tk.END, " = " + str(result))#在’=‘后输出计算结果
        elif key == "C":  # 清空输入框
            self.entry.delete(0, tk.END)#将结果清零
        elif key == "+/-":  # 取相反数
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            elif self.entry.get()[0] == "-":
                self.entry.delete(0)
            else:
                self.entry.insert(0, "-")
        else:  # 其他键
            if "=" in self.entry.get():
                self.entry.delete(0, tk.END)
            self.entry.insert(tk.END, key)

if __name__ == "__main__":
    Calculator().mainloop()
使用tkinter可以很方便地编写一个计算器。可以通过创建一个窗口,然后在窗口中添加各种按钮和文本框来实现计算器的功能。下面是一个简单的示例代码: ```python import tkinter as tk # 创建一个窗口 window = tk.Tk() window.title("计算器") # 创建一个用于显示结果的文本框 result_text = tk.StringVar() result_text.set("0") result_label = tk.Label(window, textvariable=result_text, width=25, height=2) result_label.grid(row=0, column=0, columnspan=4) # 定义操作函数 def button_click(number): current = result_text.get() if current == "0": result_text.set(number) else: result_text.set(current + number) def button_clear(): result_text.set("0") def button_equal(): try: result = eval(result_text.get()) result_text.set(str(result)) except: result_text.set("Error") # 创建数字和操作按钮 buttons = [ ("7", 1, 0), ("8", 1, 1), ("9", 1, 2), ("/", 1, 3), ("4", 2, 0), ("5", 2, 1), ("6", 2, 2), ("*", 2, 3), ("1", 3, 0), ("2", 3, 1), ("3", 3, 2), ("-", 3, 3), ("0", 4, 0), (".", 4, 1), ("=", 4, 2), ("+", 4, 3) ] for button in buttons: text, row, col = button btn = tk.Button(window, text=text, width=5, height=2, command=lambda text=text: button_click(text)) btn.grid(row=row, column=col) # 创建清零按钮 clear_btn = tk.Button(window, text="C", width=5, height=2, command=button_clear) clear_btn.grid(row=5, column=0) # 创建等号按钮 equal_btn = tk.Button(window, text="=", width=5, height=2, command=button_equal) equal_btn.grid(row=5, column=1) # 运行窗口 window.mainloop() ``` 这个示例中创建了一个窗口,并在窗口中添加了一个用于显示结果的文本框和各种数字和操作按钮。每当按钮被点击时,对应的操作函数会被调用,然后更新结果的文本框。最后,通过调用`window.mainloop()`来运行窗口,使得窗口界面可以响应用户的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [pythonTkinter简单应用——开发一个简易计算器](https://blog.youkuaiyun.com/weixin_44120833/article/details/110467105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [tkinter制作一个简单计算器](https://blog.youkuaiyun.com/guleilei0/article/details/129855066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值