1. PySimpleGUI简介
2. PySimpleGUI基础用法
- 图形窗口的一些要素:(1) 窗口风格(颜色等); (2)窗口标题;(3) 界面布局; (4)控件及其事件响应
- 在深入研究PySimpleGUI用法细节之前,用一个实例展示PySimpleGUI的基础语法。
2.1. 一个完整的PySimpleGUI实例
# 原码链接: https://pysimplegui.readthedocs.io/en/latest/
# 注释是作者所加
# Annotator: 潜水的007
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界面(窗口)前,需定义好窗口主题样式,和窗口界面中的控件及其响应事件处理
3. 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() |
打印到调试窗口 |