【Python】Tkinter 实现计算器

Tkinter 实现计算器

Tkinter 简介

Tkinter 是Python自带的标准 GUI 库,不需要单独安装,TKinter 支持跨平台运行,不仅可以在 Windows 上运行,还支持在 LinuxMac 上运行,可以较为简单的实现工具类图形化界面,较为复杂的界面需要评估 TKinter 是否能够实现。

计算器的实现

实现思路

  1. 首先是图形化界面的实现,这里可以使用 Tkinter 的布局,可以参考 https://docs.zhengxinonly.com/python/03.tkinter/01.intro/02-pack.html 这篇文档,最终选用了 place 这个自由度较高的组件。
  2. 计算能力使用 eval 直接计算输入的表达式。

计算器图形化界面的实现

from tkinter import *
from tkinter.ttk import *


class Calculator(Tk):
    def __init__(self):
        # 继承TK组件
        super().__init__()

        self.title("计算器")
        self.geometry("400x500")
        # 计算结果展示
        self.equation = StringVar()
        self.create_widgets()

    def create_widgets(self):
        """计算器的输入"""
        # 结果显示
        entry = Entry(self, textvariable=self.equation, width=16, font=('Times New Roman', 30, 'bold'))
        # entry.grid(row=0, column=0, columnspan=4)
        entry.place(relheight=0.2, relwidth=1, relx=0, rely=0)

        # 按钮
        buttons = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+'
        ]
        # 按键布局
        row, col = 1, 0
        for button in buttons:
            action = lambda x=button: self.on_button_click(x)
            calculator_button = Button(self, text=button, command=action)
            # calculator_button.grid(row=row, column=col)
            # 调整为place布局
            calculator_button.place(relheight=0.2, relwidth=0.25, relx=0.25 * col, rely=0.2 * row)

            col += 1
            if col > 3:
                col = 0
                row += 1

if __name__ == "__main__":
    calculator = Calculator()
    calculator.mainloop()

在这里插入图片描述

计算能力代码实现

# 这里读取输入的内容进行计算
def on_button_click(self, char):
    """结果计算"""
    if char == '=':
        try:
            result = str(eval(self.equation.get()))
            self.equation.set(result)
            except:
                self.equation.set("输入错误")
            else:
                current_text = self.equation.get()
                new_text = current_text + char
                self.equation.set(new_text)

完整代码

from tkinter import *
from tkinter.ttk import *


class Calculator(Tk):
    def __init__(self):
        # 继承TK组件
        super().__init__()

        self.title("计算器")
        self.geometry("400x500")
        # 计算结果展示
        self.equation = StringVar()
        self.create_widgets()

    def create_widgets(self):
        """计算器的输入"""
        # 结果显示
        entry = Entry(self, textvariable=self.equation, width=16, font=('Times New Roman', 30, 'bold'))
        # entry.grid(row=0, column=0, columnspan=4)
        entry.place(relheight=0.2, relwidth=1, relx=0, rely=0)

        # 按钮
        buttons = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+'
        ]
        # 按键布局
        row, col = 1, 0
        for button in buttons:
            action = lambda x=button: self.on_button_click(x)
            calculator_button = Button(self, text=button, command=action)
            # calculator_button.grid(row=row, column=col)
            # 调整为place布局
            calculator_button.place(relheight=0.2, relwidth=0.25, relx=0.25 * col, rely=0.2 * row)

            col += 1
            if col > 3:
                col = 0
                row += 1

    def on_button_click(self, char):
        """结果计算"""
        if char == '=':
            try:
                result = str(eval(self.equation.get()))
                self.equation.set(result)
            except:
                self.equation.set("输入错误")
        else:
            current_text = self.equation.get()
            new_text = current_text + char
            self.equation.set(new_text)


if __name__ == "__main__":
    calculator = Calculator()
    calculator.mainloop()

在这里插入图片描述

计算器打包

这里需要用到第三方包 PyInstallerPyInstaller 是一个将 Python 脚本转换为独立可执行文件的工具,适用于 WindowsmacOSLinux,使用如下命令行安装 pyinstaller

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/

在终端中,cdtkinter 脚本所在的目录,运行如下命令:

pyinstaller --onefile --windowed calculator.py

PyInstaller 会在当前目录下生成一个 dist 文件夹,里面包含打包好的可执行文件。你可以在 dist 文件夹中找到名为 calculator 的可执行文件。

├─Button按钮组件
├─Calculator_计算器
│  ├─build
│  │  └─calculator
│  │      └─localpycs
│  └─dist

打包后,点击即可使用计算器。

在这里插入图片描述

相关推荐

  1. python实现一个计算器

    2024-07-19 15:32:03       53 阅读
  2. 【使用 Qt 实现计算器

    2024-07-19 15:32:03       26 阅读
  3. 简单实现日期计算器

    2024-07-19 15:32:03       30 阅读
  4. 计算机(函数指针实现

    2024-07-19 15:32:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 15:32:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 15:32:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 15:32:03       62 阅读
  4. Python语言-面向对象

    2024-07-19 15:32:03       72 阅读

热门阅读

  1. 防范UDP Flood攻击的策略与实践

    2024-07-19 15:32:03       21 阅读
  2. 华为OD机考题(HJ62 查找输入整数二进制中1的个数)

    2024-07-19 15:32:03       22 阅读
  3. celery config_from_object的简单使用

    2024-07-19 15:32:03       22 阅读
  4. python程序设定定时任务

    2024-07-19 15:32:03       19 阅读
  5. 【电子数据取证】从SSH开始使用Linux

    2024-07-19 15:32:03       22 阅读
  6. axios源码分析与模拟(上)

    2024-07-19 15:32:03       21 阅读
  7. c语言(7.19)

    2024-07-19 15:32:03       24 阅读
  8. 关于UniApp使用的个人笔记

    2024-07-19 15:32:03       19 阅读
  9. Qt之基础体系

    2024-07-19 15:32:03       16 阅读
  10. Git笔记

    Git笔记

    2024-07-19 15:32:03      20 阅读