弹窗相关库笔记
PySimpleGUI库引入
import PySimpleGUI as sg
这是一个基于thinker库开发的库,主要实现各种弹窗功能
简易显示界面
普通弹窗
sg.popup('默认弹窗')
sg.popup_ok('默认弹窗')
sg.popup_yes_no('带YES和NO按钮的弹窗')
sg.popup_cancel('带cancel按钮的弹窗')
sg.popup_ok_cancel('带OK和cancel按钮的弹窗')
sg.popup_error('带红色error按钮的弹窗')
sg.popup_auto_close('几秒后自动关闭的弹窗')
- 弹窗参数:
类型 | 名称 | 说明 |
---|---|---|
任意 | 开头任意个参数 | 展示这些参数,类似于print()的参数及作用 |
str | title | 窗口标题 |
(str,str) | button_color | 按钮颜色(前景色,背景色) |
int | line_width | 一行几个字 |
bool | auto_close | 如果为True,则窗口会自动关闭 |
int或float | auto_close_duration | 自动关闭时间/秒 |
(str,str)或str | custom_text | 自定义显示按钮文字 |
(int,int) | location | 窗口出现在屏幕的位置 |
str | background_color | 背景色 |
str | text_color | 文字颜色 |
bool | no_titlebar | 如果为True,则没有标题栏 |
bool | grab_anywhere | 如果为True,则拖拽窗口任意地方都能移动窗口 |
bool | keep_on_top | 如果为True,则窗口会始终置于最上方 |
(str,str)或str | font | 指定字体、尺寸等 |
str或bytes | image | 在窗口内要显示的图片 |
添加参数的实例
sg.popup(
'这是弹窗',
title = 'Hello',
button_color = ('#A81B0C','#FFFFFF'),
background_color = '#F47264',
line_width = 2,
custom_text = '好的'
)
大段文字内容的弹窗
text = '''大家好,
这里是测试用的弹窗,
内容要足够丰富才行'''
sg.popup_scrolled(text)
- 弹窗参数
类型 | 名称 | 说明 |
---|---|---|
任意 | 开头任意个参数 | 展示这些参数,类似于print()的参数及作用 |
bool | yes_no | 如果为True,则显示yes no而非ok按钮 |
(int, int) | size | 宽度及高度 |
获取输入信息的弹窗
text = sg.popup_get_text('请输入文字')
- 弹窗参数:
类型 | 名称 | 说明 |
---|---|---|
str | message | 提示用户的信息 |
str | default_text | 默认文字 |
str | password_char | 替换文字显示的符号(类似于密码输入) |
密码输入实例
text = sg.popup_get_text(
'请输入密码',
password_char = '*')
选择文件的弹窗
sg.popup_get_file('请选择一个文件')
输出结果为具体的文件路径
- 弹窗参数
类型 | 名称 | 作用 |
---|---|---|
str | message | 提示用户的信息 |
str | default_path | 自动显示的路径 |
bool | save_as | 如果为True,则为另存为对话框,覆盖文件时会提示用户确认 |
bool | multiple_files | 是否允许多选文件 |
((类型名称, 后缀), (), …) | file_types | 允许用户选择的文件类型后缀 |
str | initial_folder | 初始让用户开始选择文件的起始文件夹路径 |
筛选弹窗和另存为实例
文件筛选
sg.popup_get_file(
'请选择一个文件',
file_types = (('Python文件','.py'),)
)
另存为
sg.popup_get_file(
'请选择要保存的压缩包位置',
save_as=True,
default_extension='zip',
file_types=(('压缩包','.zip'),)
)
让用户选择文件夹的弹窗
sg.popup_get_folder('请选择一个文件夹')
输出结果为具体的文件夹路径
进度条弹窗
for i in range(1,1000):
sg.one_line_progress_meter(
'进度条',
i+1,
1000,
'key',
'这是一个进度条'
)
- 弹窗参数
类型 | 名称 | 作用 |
---|---|---|
str | title | 标题 |
str | current_value | 当前数值 |
str | max_value | 最大数值 |
bool | key | 进度条框的key,用于区分不同的进度条 |
任意 | 任意个参数 | 展示这些参数,类似于print()的参数及作用 |
‘h’ 或’v’ | orientation | 进度条方向,h水平,v垂直 |
(str, str) | bar_color | 进度条颜色 |
简单进度条实例
for i in range(1,1000):
sg.one_line_progress_meter(
'进度条',
i+1,
1000,
'该进度条key',
'这是一个进度条'
orientation='h',
bar_color=('#F47264','#FFFFFF')
)
复杂显示界面
几个简单实例
数字输入实例
layout = [
[sg.Text('输入一个数字')],
[sg.Input()],
[sg.OK()]
]
window = sg.Window('数字输入',layout)
event, values = window.read()
window.close()
文件选择实例
layout = [
[sg.Text('请选择文件')],
[sg.Input(),sg.FileBrowse()],
[sg.OK(),sg.Cancel()]
]
window = sg.Window('文件选择',layout)
event, values = window.read()
window.close()
持续显示界面
文件选择实例
layout = [
[sg.Text('请选择文件')],
[sg.Input(),sg.FileBrowse()],
[sg.OK(),sg.Cancel()]
]
window = sg.Window('文件选择',layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event=='Exit':
break
window.close()
各种元素
元素通用可设置的参数
名称 | 作用 |
---|---|
key | 类似字典的key,标记不同元素 |
tooltip | 当鼠标悬停在该元素上时,显示的提示文字 |
size | (宽度, 高度), 通常按字符数算宽度,按行数算高度,有时也以像素为单位 |
font | 指定字体名称、字体大小等 |
colors | 颜色名称或者#RRGGBB形式的字符串 |
pad | (左右间隔, 上下间隔), 元素周围的空间 |
enable_events | 开启元素特定事件 |
visible | 让元素显示或不显示 |
文字元素
sg.Text(
'这是一段较长的文字',
size = (2,10),
text_color = '#F47264',
background_color='#FFFFFF',
font=('楷体',20),
tooltip='悬停提示在这里',
pad=(20,10)
)
单行输入元素
sg.InputText()
单行输入元素参数:
类型 | 名称 | 作用 |
---|---|---|
bool | disabled | 如果为True,则不能输入 |
str | password_char | 类似输入密码,将输入字符替换为其它字符 |
bool | do_not_clear | 如果为False,则在任意事件(单击按钮,回车等)后会清空内容 |
多行显示/输入文字元素
sg.Multiline()
多行显示/输入文字元素参数
类型 | 名称 | 作用 |
---|---|---|
bool | autoscroll | 如果为True,当新增内容时,自动滚动到最后一行位置 |
bool | disabled | 如果为True,则只能显示不能输入 |
多行显示/输入文字元素更新、输出方法
.print(文字内容)
和Python自带的print()方法类似,每次会新增一行显示
.update(文字内容)
非新增内容,而是将整个文字内容都替换掉
下拉列表元素
sg.Combo(选项列表/元组, default_value=默认显示选项)
列表选项元素
sg.Listbox(选项列表/元组, default_values=默认显示选项, select_mode=选择模式)
类型 | 名称 | 作用 |
---|---|---|
sg内置变量 | select_mode | 单选:sg. LISTBOX_SELECT_MODE_SINGLE |
多选:sg. LISTBOX_SELECT_MODE_MULTIPLE | ||
可按住shift多选:sg. LISTBOX_SELECT_MODE_EXTENDED |
滑动条元素
sg.Slider(range=(最小值, 最大值), default_value=默认值, resolution=每次移动最小间隔)
类型 | 名称 | 作用 |
---|---|---|
str | orientation | h为横向,v为纵向 |
bool | disable_number_display | 如果为True,则不显示滑动条数字 |
单选元素
sg.Radio(文字内容,分组ID,default=是否为默认选项)
实例
layout = [
[sg.Radio('选项一','R1'),sg.Radio('选项二','R1')],
[sg.Radio('选项A','R2'),sg.Radio('选项B','R2')],
[sg.OK()]
]
多选元素
sg.Checkbox(文字内容, 是否默认勾选)
微调元素
sg.Spin(可调节的数值列表, initial_value=初始数值)
图片元素
sg.Image(图片路径) 注意:只能用GIF或者PNG格式图片
按钮元素
sg.Button(按钮文字)
按钮元素参数:
类型 | 名称 | 作用 |
---|---|---|
(str, str) | button_color | 按钮颜色,(前景色,背景色) |
((类型名称, 后缀), (), …) | file_types | 允许用户选择的文件类型后缀 |
str | initial_folder | 初始让用户开始选择文件的起始文件夹路径 |
str | default_extension | 默认后缀,如果用户未输入后缀时会自动添加 |
PySimpleGUI自带的普通按钮元素
名称 | 代码 |
---|---|
OK | [sg.OK()] |
Ok | [sg.Ok()] |
Submit | [sg.Submit()] |
Cancel | [sg.Cancel()] |
Yes | [sg.Yes()] |
No | [sg.No()] |
Exit | [sg.Exit()] |
Quit | [sg.Quit()] |
Help | [sg.Help()] |
Save | [sg.Save()] |
SaveAs | [sg.SaveAs()] |
Open | [sg.Open()] |
PySimpleGUI自带的特殊按钮元素
名称 | 特殊作用 |
---|---|
CalendarButton | 打开弹窗选择日期 |
ColorChooserButton | 打开弹窗选择颜色 |
FileBrowse | 选择单个文件 |
FilesBrowse | 选择多个文件 |
FileSaveAs | 打开文件另存为窗口 |
FolderBrowse | 选择文件夹 |
实例
layout = [
[sg.InputText(),sg.CalendarButton('日历选择')],
[
sg.InputText(key = '-COLOR-TEXT-'),
sg.ColorChooserButton('颜色选择',target='-COLOR-TEXT-')],
[sg.InputText(), sg.FileBrowse()],
[sg.InputText(), sg.FilesBrowse()],
[sg.InputText(), sg.FileSaveAs()],
[sg.InputText(), sg.FolderBrowse()],
]
按钮元素显示图片
sg.Button(image_filename=图片路径)
进度条元素
sg.ProgressBar(最大值, orientation=方向, size=(宽度, 高度), bar_color=颜色)
Frame元素
sg.Frame(名称, 一个layout)
设置主题色
sg.theme(主题色名称)
查看主题色名称
sg.preview_all_look_and_feel_themes()
常用主题色
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jwZ86WnA-1620746678962)(D:/OneDrive/python/Notes/库-学习笔记/pysimplegui.png “图片Title”)]
[sg.InputText(), sg.FolderBrowse()],
]
按钮元素显示图片
sg.Button(image_filename=图片路径)
进度条元素
sg.ProgressBar(最大值, orientation=方向, size=(宽度, 高度), bar_color=颜色)
Frame元素
sg.Frame(名称, 一个layout)
设置主题色
sg.theme(主题色名称)
查看主题色名称
sg.preview_all_look_and_feel_themes()