首页 > Python资料 博客日记
5分钟用 Python 写一个软件,快速入门 PySimpleGUI
2024-07-17 09:00:07Python资料围观78次
大家好,很多人都想写一个自己的桌面程序,那么PySimpleGUI 是一个非常好的选择,它旨在简化 GUI(图形用户界面)的创建过程。它基于几种流行的 Python GUI 库,如 tkinter、Qt、WxPython 和 Remi,但提供了一个更简单直观的接口。通过 PySimpleGUI,即使是没有图形界面开发经验的开发者也可以快速创建漂亮、功能丰富的窗口应用。
为什么选择PySimpleGUI?
- 易用性:
PySimpleGUI
提供了简洁的API,使得创建GUI变得非常简单。 - 灵活性:支持多种后端,可以根据不同的需求选择合适的后端。
- 高效性:虽然简单,但
PySimpleGUI
并不牺牲性能,它能够创建响应迅速的应用程序。 - 跨平台:可以在Windows、macOS和Linux上运行。
基础概念和原理
在深入案例之前,我们先来了解一些基础概念:
窗口(Window)
在PySimpleGUI
中,一切都是从创建一个窗口开始的。窗口是用户与程序交互的界面。
布局(Layout)
布局定义了窗口中元素的排列方式。PySimpleGUI
支持多种布局管理器,如Vertical
、Horizontal
等。
元素(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()
代码解析
- 导入
PySimpleGUI
库。 - 定义计算器的布局,包括文本、输入框、输出文本和按钮。
- 创建一个窗口,传入窗口标题和布局。
- 进入事件循环,监听用户操作。
- 根据用户的操作更新输出结果或处理异常。
- 当用户关闭窗口时退出循环,并关闭窗口。
通过上述示例可以看出,PySimpleGUI 提供了一种快速而简便的方法来创建具有复杂交互功能的 GUI 应用。无论你是初学者还是有经验的开发者,PySimpleGUI 都能有效地帮助你实现应用原型或构建完整的用户界面,从而让 Python GUI 开发变得更加简单有趣。
如果分享你的信息,对你有用!别忘了三连击哦——点赞、收藏、关注!
喜欢学习Pyhon及副业知识,可添加微信tongwen1629围观学习!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程