📜  使用 PySimpleGUI 的计算器 – Python(1)

📅  最后修改于: 2023-12-03 15:36:33.369000             🧑  作者: Mango

使用 PySimpleGUI 的计算器 – Python

PySimpleGUI是一个基于Python的GUI框架,使创建GUI应用变得简单易用。在这个教程中,我们将介绍如何使用PySimpleGUI创建一个计算器。

安装 PySimpleGUI

PySimpleGUI可以直接通过pip进行安装:

pip install PySimpleGUI
创建计算器

我们将使用PySimpleGUI创建一个基本的计算器,支持加减乘除和清除操作。

首先,导入PySimpleGUI并定义一些常量:

import PySimpleGUI as sg

# 定义字体和颜色
FONT = ("Arial", 25)
BUTTON_COLOR = ("white", "#666666")

然后,我们定义计算器的布局。在这个例子中,我们使用了sg.Buttonsg.Input来创建计算器的UI。

# 定义布局
layout = [
    [sg.Input(size=(19, 1), font=FONT, key="-DISPLAY-")],
    [sg.Button("1", font=FONT, button_color=BUTTON_COLOR), sg.Button("2", font=FONT, button_color=BUTTON_COLOR), sg.Button("3", font=FONT, button_color=BUTTON_COLOR), sg.Button("/", font=FONT, button_color=BUTTON_COLOR)],
    [sg.Button("4", font=FONT, button_color=BUTTON_COLOR), sg.Button("5", font=FONT, button_color=BUTTON_COLOR), sg.Button("6", font=FONT, button_color=BUTTON_COLOR), sg.Button("*", font=FONT, button_color=BUTTON_COLOR)],
    [sg.Button("7", font=FONT, button_color=BUTTON_COLOR), sg.Button("8", font=FONT, button_color=BUTTON_COLOR), sg.Button("9", font=FONT, button_color=BUTTON_COLOR), sg.Button("-", font=FONT, button_color=BUTTON_COLOR)],
    [sg.Button("C", font=FONT, button_color=BUTTON_COLOR), sg.Button("0", font=FONT, button_color=BUTTON_COLOR), sg.Button("=", font=FONT, button_color=BUTTON_COLOR), sg.Button("+", font=FONT, button_color=BUTTON_COLOR)],
]
处理事件

下一步是定义事件处理器。我们使用了一个while循环,直到用户关闭程序为止。通过sg.read函数获取事件并作出响应。

# 创建窗口
window = sg.Window("Calculator", layout)

# 定义变量
operators = "+-*/"
current_input = ""

# 处理事件
while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    elif event in operators:
        current_input += values["-DISPLAY-"] + event
        window["-DISPLAY-"].update(current_input)
    elif event == "C":
        current_input = ""
        window["-DISPLAY-"].update("")
    elif event == "=":
        try:
            result = eval(current_input)
            window["-DISPLAY-"].update(result)
            current_input = str(result)
        except:
            window["-DISPLAY-"].update("ERROR")
            current_input = ""
    else:
        current_input += event
        window["-DISPLAY-"].update(current_input)

# 关闭窗口
window.close()

在事件处理器中,我们通过sg.read函数获取用户操作。如果用户点击任何数字或操作符按钮,我们将该值添加到current_input字符串中,并更新显示。如果用户点击等号按钮,我们将调用eval计算表达式。如果表达式无效,则显示错误消息。

运行代码

现在我们已经创建了计算器的所有部分,现在可以运行代码,看看我们的计算器是否能工作了。在命令行中输入以下命令:

python calculator.py

通过这个教程,您已经学会了如何使用PySimpleGUI创建一个基本的计算器,展示了PySimpleGUI的简单易用性。