Python 图形界面1: PySimpleGUI基础用法及常用控件列表
2.1. 一个完整的PySimpleGUI实例
import PySimpleGUI as sg # 导入PySimpleGUI模块,并命名为sg(sg为官网推荐命名,可用其他字符替代)
sg.theme('DarkAmber') # 设置窗口主题样式,参数为样式名称,本样式为:"黑琥珀"
# 布局layout 是一个二维列表,包含窗口界面将要呈现的控件
# 布局layout二维列表中的每个元素代表一行,每个元素的子列表代表一行中的多个控件
layout = [ [sg.Text('Some text on Row 1')], #本行1个控件,静态显示文本
[sg.Text('Enter something on Row 2'), sg.InputText()], # 本行2个控件,分别是静态显示文本和文本输入框
[sg.OK('OK', key='OK'), sg.Cancel('Cancel', key='Cancel')]] # 本行2个控件,分别是"确定"和"取消"按键,参数1为按键的显示文字,参数key为按键的键值
# 定义好layout后,创建窗口
window = sg.Window('Window Title', layout) # 把构造的布局加入窗口中
# Event Loop to process "events" ,添加事件处理
while True:
event, values = window.read() # 用于读取页面上的事件和输入的数据。
# 其返回值为('事件', {0: '输入控件1接收的值', 1: '输入控件2接受的值'})
if event == 'Cancel': #
break # 退出循环
window.close() # 关闭窗口界面
2.2. PySimpleGUI图形界面基本构建步骤
- (1) 设置窗口主题样式
- (2) 设计窗口布局,调用PySimpleGUI模块定义好的各种控件
- (3) 创建窗口
- (4) 添加事件处理
- (5) 关闭窗口界面
- 窗口布局是关键,而控件是布局的关键,因此了解并熟悉各种控件是用好PySimpleGUI的基本前提
- 创建GUI界面(窗口)前,需定义好窗口主题样式,和窗口界面中的控件及其响应事件处理
- PySimpleGUI常用控件
序号 | 控件函数 | 控件类型 |
---|---|---|
1 文本控件 | ||
1-1 | sg.Text() 或者 sg.T() | |
1-2 | sg.Input() 或 sg.In() 或 sg.InputText() | 文本输入框 |
1-3 | sg.Listbox() | 多行列表文本框 |
1-4 | sg.Multiline() | 大文本框 |
2 按键控件 | ||
2-1 | sg.Button() 或 sg.B() | 按键 |
2-2 | sg.Exit() | 退出按键 |
2-3 | sg.OK() | 确认按键 |
2-4 | sg.Cancel() | 取消按键 |
2-6 | sg.Submit() | 提交按键 |
3 弹窗控件 | ||
3-1 | sg.popup() | 单一确认按键弹窗 |
3-2 | sg.popup_ok() | 默认ok按键弹窗 |
3-3 | sg.popup_yes_no() | 带Yes和No按键的弹窗 |
3-4 | sg.popup_cancel() | 带cancel按钮的弹窗 |
3-5 | sg.popup_ok_cancel() | 带OK和cancel按钮的弹窗 |
3-6 | sg.popup_error() | 带红色error按钮的弹窗 |
3-7 | sg.popup_yes_no() | 带Yes和No按键的弹窗 |
3-8 | sg.popup_auto_close() | 几秒后自动关闭的弹窗 |
3-9 | sg.popup_scrolled() | 文字内容弹窗 |
3-10 | sg.popup_get_text() | 获取用户输入的弹窗 |
3-11 | sg.popup_get_file() | 文件选择弹窗,可用于文件保存 |
3-12 | sg.popup_get_folder() | 文件夹选择弹窗 |
3-13 | sg.one_line_progress_meter() | 进度条弹窗 |
4 文件(夹)选择控件 | ||
4-1 | sg.FileBrowse() | 文件选择 |
4-2 | sg.FolderBrowse() | 文件夹选择 |
5 单选/复选框 | ||
5-1 | sg.Checkbox() | 多选框 |
5-2 | sg.Radio() | 单选框 |
5-3 | sg.InputCombo() | 下拉列表框 |
5-6 | sg.InputOptionMenu() | 下拉选项 |
6 其他 | ||
6-1 | sg.Menu() | 菜单 |
6-2 | sg.Frame() | 块 |
6-3 | sg.Column() | 定义列 |
6-4 | sg.ProgressBar() | 进度表/进度条 |
6-5 | sg.Slider() | 滚动条 |
6-6 | sg.Print() | 打印到调试窗口 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了