大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。

南鱼

果然,我没有抓住重点

导航

GUI利器 python界面开发PySimpleGUI

大家好,很多人都想写一个自己的桌面程序,那么PySimpleGUI 是一个非常好的选择,它旨在简化 GUI(图形用户界面)的创建过程。它基于几种流行的 Python GUI 库,如 tkinter、Qt、WxPython 和 Rem)i,但提供了一个更简单直观的接口。

通过 PySimpleGUI,即使是没有图形界面开发经验的开发者也可以快速创建漂亮、功能丰富的窗口应用。

 

为什么选择PySimpleGUI?

  1. 1. 易用性PySimpleGUI提供了简洁的API,使得创建GUI变得非常简单。

  2. 2. 灵活性:支持多种后端,可以根据不同的需求选择合适的后端。

  3. 3. 高效性:虽然简单,但PySimpleGUI并不牺牲性能,它能够创建响应迅速的应用程序。

  4. 4. 跨平台:可以在Windows、macOS和Linux上运行。

基础概念和原理

在深入案例之前,我们先来了解一些基础概念:

窗口(Window)

PySimpleGUI中,一切都是从创建一个窗口开始的。窗口是用户与程序交互的界面。

布局(Layout)

布局定义了窗口中元素的排列方式。PySimpleGUI支持多种布局管理器,如VerticalHorizontal等。

元素(Element)

元素是构成GUI的基本组件,如按钮(Button)、输入框(Input)、列表(List)等。

事件(Event)

事件是用户与GUI交互的结果,如点击按钮、输入文本等。PySimpleGUI通过回调函数来处理这些事件。

安装

这个包5.0以后开始收费了,建议安装如下版本

pip install PySimpleGUI==4.60.5 -i https://pypi.tuna.tsinghua.edu.cn/simple

案例

示例 1:创建一个简单的登录界面

import PySimpleGUI as sg

# 窗口布局定义
layout = [
    [sg.Text('用户名'), sg.InputText(key='username')],
    [sg.Text('密码'), sg.Input(key='password', password_char='*')],
    [sg.Button('登录'), sg.Button('退出')]
]

# 创建窗口
window = sg.Window('登录界面', layout)

# 事件循环
while True:
    event, values = window.read()
    if event in (None, '退出'):
        break
    elif event == '登录':
        # 检查用户名和密码
        if values['username'] == 'admin' and values['password'] == 'admin':
            sg.popup('登录成功!')
        else:
            sg.popup('错误的用户名或密码!')

window.close()
图片

在这个示例中,我们创建了一个包含用户名、密码输入框和两个按钮的简单界面。用户可以通过输入正确的用户名和密码组合来触发登录成功的弹窗。

示例 2:创建一个数据输入表单

import PySimpleGUI as sg

# 表单布局
layout = [
    [sg.Text('请输入以下信息')],
    [sg.Text('姓名', size=(15, 1)), sg.InputText()],
    [sg.Text('年龄', size=(15, 1)), sg.InputText()],
    [sg.Text('职业', size=(15, 1)), sg.Combo(['教师', '工程师', '医生', '艺术家'])],
    [sg.Submit(), sg.Cancel()]
]

# 创建窗口
window = sg.Window('信息表单', layout)

# 事件处理
while True:
    event, values = window.read()
    if event in (None, 'Cancel'):
        break
    if event == 'Submit':
        sg.popup(f"姓名: {values[0]}\n年龄: {values[1]}\n职业: {values[2]}")

window.close()

 

这个例子展示了如何创建一个包含文本输入和下拉菜单的表单。用户提交信息后,将通过弹窗显示输入的内容。

一个进阶案例

创建一个简单的计算器

让我们通过一个简单的计算器案例来展示PySimpleGUI的用法。

代码实现

import PySimpleGUI as sg

# 定义计算器的布局
layout = [
    [sg.Text('简单计算器')],
    [sg.Input(key='INPUT1'), sg.Input(key='INPUT2', enable_events=True)],
    [sg.Text('结果:'), sg.Text('0', key='OUTPUT')],
    [sg.Button('加'), sg.Button('减'), sg.Button('乘'), sg.Button('除')],
    [sg.Button('退出')]
]

# 创建窗口
window = sg.Window('计算器', layout)

# 事件循环
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break
    if event in ('加', '减', '乘', '除'):
        try:
            num1 = float(values['INPUT1'])
            num2 = float(values['INPUT2'])
            if event == '加':
                result = num1 + num2
            elif event == '减':
                result = num1 - num2
            elif event == '乘':
                result = num1 * num2
            elif event == '除':
                result = num1 / num2 if num2 != 0 else '除数不能为0'
            window['OUTPUT'].update(result)
        except ValueError:
            window['OUTPUT'].update('请输入有效的数字')

# 关闭窗口
window.close()

 

代码解析

  1. 1. 导入PySimpleGUI库。

  2. 2. 定义计算器的布局,包括文本、输入框、输出文本和按钮。

  3. 3. 创建一个窗口,传入窗口标题和布局。

  4. 4. 进入事件循环,监听用户操作。

  5. 5. 根据用户的操作更新输出结果或处理异常。

  6. 6. 当用户关闭窗口时退出循环,并关闭窗口。

通过上述示例可以看出,PySimpleGUI 提供了一种快速而简便的方法来创建具有复杂交互功能的 GUI 应用。无论你是初学者还是有经验的开发者,PySimpleGUI 都能有效地帮助你实现应用原型或构建完整的用户界面,从而让 Python GUI 开发变得更加简单有趣。

posted on 2024-05-06 16:34  南鱼羁荒渡  阅读(344)  评论(0编辑  收藏  举报