当前位置: 首页 > 工具软件 > PySimpleGUI > 使用案例 >

一份PySimpleGUI笔记

谈炳
2023-12-01

弹窗相关库笔记

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()的参数及作用
strtitle窗口标题
(str,str)button_color按钮颜色(前景色,背景色)
intline_width一行几个字
boolauto_close如果为True,则窗口会自动关闭
int或floatauto_close_duration自动关闭时间/秒
(str,str)或strcustom_text自定义显示按钮文字
(int,int)location窗口出现在屏幕的位置
strbackground_color背景色
strtext_color文字颜色
boolno_titlebar如果为True,则没有标题栏
boolgrab_anywhere如果为True,则拖拽窗口任意地方都能移动窗口
boolkeep_on_top如果为True,则窗口会始终置于最上方
(str,str)或strfont指定字体、尺寸等
str或bytesimage在窗口内要显示的图片

添加参数的实例

sg.popup(
    '这是弹窗',
    title = 'Hello',
    button_color = ('#A81B0C','#FFFFFF'),
    background_color = '#F47264',
    line_width = 2,
    custom_text = '好的'
    )

大段文字内容的弹窗

text = '''大家好,
    这里是测试用的弹窗,
    内容要足够丰富才行'''
sg.popup_scrolled(text)
  • 弹窗参数
类型名称说明
任意开头任意个参数展示这些参数,类似于print()的参数及作用
boolyes_no如果为True,则显示yes no而非ok按钮
(int, int)size宽度及高度

获取输入信息的弹窗

text = sg.popup_get_text('请输入文字')
  • 弹窗参数:
类型名称说明
strmessage提示用户的信息
strdefault_text默认文字
strpassword_char替换文字显示的符号(类似于密码输入)

密码输入实例

text = sg.popup_get_text(
    '请输入密码',
    password_char = '*')

选择文件的弹窗

sg.popup_get_file('请选择一个文件')

输出结果为具体的文件路径

  • 弹窗参数
类型名称作用
strmessage提示用户的信息
strdefault_path自动显示的路径
boolsave_as如果为True,则为另存为对话框,覆盖文件时会提示用户确认
boolmultiple_files是否允许多选文件
((类型名称, 后缀), (), …)file_types允许用户选择的文件类型后缀
strinitial_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',
        '这是一个进度条'
    )
  • 弹窗参数
类型名称作用
strtitle标题
strcurrent_value当前数值
strmax_value最大数值
boolkey进度条框的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()

单行输入元素参数:

类型名称作用
booldisabled如果为True,则不能输入
strpassword_char类似输入密码,将输入字符替换为其它字符
booldo_not_clear如果为False,则在任意事件(单击按钮,回车等)后会清空内容

多行显示/输入文字元素

sg.Multiline()

多行显示/输入文字元素参数

类型名称作用
boolautoscroll如果为True,当新增内容时,自动滚动到最后一行位置
booldisabled如果为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=每次移动最小间隔)
类型名称作用
strorientationh为横向,v为纵向
booldisable_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允许用户选择的文件类型后缀
strinitial_folder初始让用户开始选择文件的起始文件夹路径
strdefault_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()
常用主题色
 类似资料: