一份PySimpleGUI笔记

弹窗相关库笔记

文章目录

  • 弹窗相关库笔记
    • PySimpleGUI库引入
    • 简易显示界面
      • 普通弹窗
        • 添加参数的实例
      • 大段文字内容的弹窗
      • 获取输入信息的弹窗
        • 密码输入实例
      • 选择文件的弹窗
        • 筛选弹窗和另存为实例
      • 让用户选择文件夹的弹窗
      • 进度条弹窗
        • 简单进度条实例
    • 复杂显示界面
      • 几个简单实例
      • 持续显示界面
      • 各种元素
        • 元素通用可设置的参数
        • 文字元素
        • 单行输入元素
        • 多行显示/输入文字元素
        • 下拉列表元素
        • 列表选项元素
        • 滑动条元素
        • 单选元素
        • 多选元素
        • 微调元素
        • 图片元素
        • 按钮元素
          • PySimpleGUI自带的普通按钮元素
          • PySimpleGUI自带的特殊按钮元素
        • 按钮元素显示图片
        • 进度条元素
        • Frame元素
        • 设置主题色
          • 查看主题色名称
          • 常用主题色
        • 按钮元素显示图片
        • 进度条元素
        • Frame元素
        • 设置主题色
          • 查看主题色名称
          • 常用主题色

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()
常用主题色

你可能感兴趣的:(python,第三方库,pysimplegui,python)