page contents

用Python打造一个简洁美观的桌面计算器!

最近在学习 Python GUI 编程,顺手用 Tkinter 实现了一个简易桌面计算器,功能虽然不复杂,但非常适合新手练手。如果你正在学习 Python,不妨一起来看看这个项目吧!

attachments-2025-04-nJdOXf4b6806efe931d2f.jpg最近在学习 Python GUI 编程,顺手用 Tkinter 实现了一个简易桌面计算器,功能虽然不复杂,但非常适合新手练手。如果你正在学习 Python,不妨一起来看看这个项目吧!

项目背景

Tkinter 是 Python 标准库中自带的 GUI 工具包,不依赖第三方库,跨平台兼容性也不错。通过这个计算器项目,你可以轻松掌握 Tkinter 的基本用法,比如窗口创建、布局管理、按钮事件处理等。

项目功能

这个计算器支持以下功能:

• 基本的加减乘除运算

• 实时显示输入和结果

• 清空输入(C键)

• 错误处理机制

核心代码解析

创建主窗口

root = tk.Tk()

root.title("简易计算器")

root.geometry("300x400")定义按钮布局

buttons = [

    ["7", "8", "9", "/"],

    ["4", "5", "6", "*"],

    ["1", "2", "3", "-"],

    ["C", "0", "=", "+"]

]响应用户输入与运算

def on_click(self, button):

    if button == "C":

        self.expression = ""

    elif button == "=":

        try:

            self.expression = str(eval(self.expression))

        except:

            self.expression = "错误"

    else:

        self.expression += button

    self.input_text.set(self.expression)项目亮点

•UI 简洁美观:采用 pack 自动适应布局,兼容各种窗口大小

•逻辑清晰:通过面向对象编程组织代码,结构清晰易懂

•适合新手:没有复杂语法,适合初学者入门

获取源码

源码已经贴在下面,直接复制粘贴就可以运行!记得电脑上要安装好 Python 环境。

import tkinter as tk


classCalculator:

    def__init__(self, root):

        self.root = root

        self.root.title("简易计算器")

        self.root.geometry("300x400")

        self.expression = ""


        self.input_text = tk.StringVar()

        self.create_widgets()


    defcreate_widgets(self):

        input_frame = tk.Frame(self.root, height=50, bg="lightgray")

        input_frame.pack(expand=True, fill="both")


        input_field = tk.Entry(input_frame, textvariable=self.input_text, font=("Arial", 20), bd=10, justify="right")

        input_field.pack(expand=True, fill="both")


        button_frame = tk.Frame(self.root)

        button_frame.pack(expand=True, fill="both")


        buttons = [

            ["7", "8", "9", "/"],

            ["4", "5", "6", "*"],

            ["1", "2", "3", "-"],

            ["C", "0", "=", "+"]

        ]


        for row in buttons:

            row_frame = tk.Frame(button_frame)

            row_frame.pack(expand=True, fill="both")

            for btn_text in row:

               btn = tk.Button(row_frame, text=btn_text, font=("Arial", 18), bd=5, command=lambda x=btn_text: self.on_click(x))

                btn.pack(side="left", expand=True, fill="both")


    defon_click(self, button):

        if button == "C":

            self.expression = ""

        elif button == "=":

            try:

                self.expression = str(eval(self.expression))

            except:

                self.expression = "错误"

        else:

            self.expression += button

        self.input_text.set(self.expression)


if __name__ == "__main__":

    root = tk.Tk()

    calc = Calculator(root)

    root.mainloop()总结

这是一个非常适合初学者练手的 Python GUI 小项目,感兴趣的话可以尝试添加更多功能,比如支持小数、括号、历史记录等。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  

  • 发表于 2025-04-22 09:25
  • 阅读 ( 21 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1980 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1980 文章
  3. Pack 1163 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章