原文google翻译过来的
https://pysimplegui.readthedocs.io/en/latest/
更新2021.3.16
PySimpleGUI 4.37.0
关于提示框的新认识
sg.popup_yes_no('提示框文字',modal=True,keep_on_top = False, grab_anywhere= False)
modal:在关闭此窗口之前,所有其他窗口都不可用。默认值为:True
keep_on_top :如果为真,窗口将保持在所有当前窗口之上
grab_anywhere:移动提示窗口位置。默认值为: False
RETURN:返回值:“Yes” or “No” or None
高级API调用-弹出窗口
“高级呼叫”是以“ popup”开头的那些。它们是与用户通信的最基本形式。它们以创建的窗口类型(弹出窗口)命名。这些窗口的生命周期很短,要么传递信息,要么收集信息,然后迅速消失。
将弹出窗口视为您的第一扇窗户,就像第一辆自行车一样。它运作良好,但受到限制。不久之后,您便需要更多功能,而且对于您新发现的冒险意识来说似乎太过局限了。
当您到达Popups的地步时,您正在考虑提交GitHub“增强问题”以扩展Popup调用,以包括一项新功能,您认为这将对您有所帮助…你想到了吧?为了他人的利益。
此时,您应该立即转到标题为“自定义窗口API调用-您的第一个窗口”的部分。恭喜,您刚刚毕业,而且不是正式的“ GUI设计人员”。哦,没关系,您只是在2周前才开始学习Python,您现在是一个真正的GUI设计器,因此请放心并开始像一个人一样工作。
但是,现在,让我们继续使用这些1行窗口调用Popups。这是可供您使用的弹出呼叫列表:
popup_animated popup_annoying popup_auto_close popup_cancel popup_error popup_get_file popup_get_folder popup_get_text popup_no_border popup_no_buttons popup_no_frame popup_no_titlebar popup_no_wait popup_notify popup_non_blocking_upup_quick_upup__
弹出输出
将popup调用视为等同于print语句的GUI 。这是在窗口世界中向用户显示结果的方式。每次调用Popup都会创建一个新的Popup窗口。
popup通话通常会阻塞。您的程序将停止执行,直到用户关闭弹出窗口。异步部分中讨论了Popup的非阻塞窗口。
就像打印语句一样,您可以传递任意数量的参数。它们都将变成字符串并显示在弹出窗口中。
有许多Popup输出调用,每个调用的外观或功能略有不同(例如,不同的按钮标签,窗口选项)。
弹出窗口输出功能的列表为:-弹出窗口-popup_ok-popup_yes_no-popup_cancel-popup_ok_cancel-popup_error-popup_timed,popup_auto_close,popup_quick,popup_quick_message-popup_no_waitWait,popup_non_blocking
弹出框后的函数名称的结尾部分指示显示了哪些按钮。 PopupYesNo
显示一对按钮,它们上面分别是“是”和“否”。 PopupCancel
有一个“取消”按钮,等等。
这些是“输出”窗口,但它们确实以按钮的形式收集输入。弹出功能返回被单击的按钮。如果单击“确定”按钮,则Popup返回字符串“ Ok”。如果用户单击X按钮关闭窗口,则返回的按钮值为None。
该功能PopupTimed
或PopupAutoClose
为弹出窗口,在一段时间后将自动关闭。
这是显示Popup调用外观的快速参考。
sg.popup('Popup') # Shows OK button
sg.popup_ok('PopupOk') # Shows OK button
sg.popup_yes_no('PopupYesNo') # Shows Yes and No buttons
sg.popup_cancel('PopupCancel') # Shows Cancelled button
sg.popup_ok_cancel('PopupOKCancel') # Shows OK and Cancel buttons
sg.popup_error('PopupError') # Shows red error button
sg.popup_timed('PopupTimed') # Automatically closes
sg.popup_auto_close('PopupAutoClose') # Same as PopupTimed
弹出窗口-显示一个弹出窗口,其中包含要包含的参数数目。这等效于GUI的“打印”语句。这对于“暂停”程序流,直到用户可以读取一些错误消息也非常有用。
Popup(args=*<1 or N object>,
title=None,
button_color=None,
background_color=None,
text_color=None,
button_type=0,
auto_close=False,
auto_close_duration=None,
custom_text=(None, None),
non_blocking=False,
icon=None,
line_width=None,
font=None,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
location=(None, None))
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
Any | 任何 | *args | *参数 | 您的参数数目可变。加载呼叫以查看内容! |
str | 字符串 | title | 标题 | 窗口的可选标题。如果未提供任何参数,则将使用第一个arg。 |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 显示的按钮颜色(文本颜色,按钮颜色) |
str | 字符串 | background_color | 背景颜色 | 窗口的背景色 |
str | 字符串 | text_color | text_color | 文字颜色 |
int | 整型 | button_type | button_type | 没有用户设置!确定将显示哪些预定义按钮(默认值= POPUP_BUTTONS_OK)。有很多Popup函数,它们调用Popup,更改此参数以获得所需的效果。 |
bool | 布尔 | auto_close | 自动关闭 | 如果为True,则窗口将自动关闭 |
int | 整型 | auto_close_duration | auto_close_duration | 在自动关闭窗口之前保持窗口打开的时间(以秒为单位) |
Union[Tuple[str, str], str] | 联合[元组[str,str],str] | custom_text | custom_text | 包含要在按钮上显示的文本的一个字符串或一对字符串 |
bool | 布尔 | non_blocking | 非阻塞 | 如果为True,则无需等待用户输入即可立即从函数返回。 |
Union[str, bytes] | 联合[str,字节] | icon | 图标 | 图标显示在窗口上。与窗口调用相同的格式 |
int | 整型 | line_width | 行宽 | 行的宽度(以字符为单位)。默认为MESSAGE_BOX_LINE_WIDTH |
其他输出Popups是参数的变体。通常,button_type参数是更改的主要参数。
button_type的选择是(但是您不应该自己指定这些):
POPUP_BUTTONS_YES_NO
POPUP_BUTTONS_CANCELLED
POPUP_BUTTONS_ERROR
POPUP_BUTTONS_OK_CANCEL
POPUP_BUTTONS_OK
POPUP_BUTTONS_NO_BUTTONS
请注意,您不应使用不同的button_types自己调用Popup。 依赖于命名的Popup函数为您设置该值。例如,popup_yes_no可以为您将按钮类型设置为POPUP_BUTTONS_YES_NO。
滚动输出
如果您有很多要显示的信息,请使用滚动版本的Popups。
显示包含提供的用户文本的滚动弹出窗口。可以使用任意数量的项目进行打印,就像打印语句一样。
popup_scrolled(args=*<1 or N object>,
title=None,
button_color=None,
background_color=None,
text_color=None,
yes_no=False,
auto_close=False,
auto_close_duration=None,
size=(None, None),
location=(None, None),
non_blocking=False,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
font=None)
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
Any | 任何 | *args | *参数 | 可变数量的项目显示 |
str | 字符串 | title | 标题 | 要在窗口中显示的标题。 |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 按钮颜色(前景,背景) |
bool | 布尔 | yes_no | yes_no | 如果为True,则显示“是”和“否”按钮,而不是“确定” |
bool | 布尔 | auto_close | 自动关闭 | 如果True窗口将自行关闭 |
Union[int, float] | 联合[int,float] | auto_close_duration | auto_close_duration | 旧版本仅接受int。直到窗口关闭的时间(以秒为单位) |
Tuple[int, int] | 元组[int,int] | size | 尺寸 | (w,h)w =字符宽,h =行高 |
Tuple[int, int] | 元组[int,int] | location | 位置 | 在屏幕上放置窗口左上角的位置 |
bool | 布尔 | non_blocking | 非阻塞 | 如果为True,则呼叫将立即返回,而不是等待用户输入 |
Union[str, None, TIMEOUT_KEY] | 联合[str,无,TIMEOUT_KEY] | RETURN | 返回 | 返回所按下按钮的文本。如果用户关闭带有X的窗口,则不会返回任何内容 |
典型用法:
sg.popup_scrolled(my_text)
该popup_scrolled
会自动调整窗口大小的文本大小。指定None在一个高度场size参数来获取自动调整大小的高度。
此调用将创建一个滚动框,其宽度为80个字符,高度取决于文本的行数。
sg.popup_scrolled(my_text, size=(80, None))
请注意,发生滚动之前的默认最大行数设置为50。在50行开始滚动。
如果non_blocking
设置了参数,则呼叫将不会阻止等待用户关闭窗口。执行将立即返回给用户。当您要转储调试信息而又不中断程序流程时非常方便。
非阻塞弹出窗口-popup_no_wait和non_blocking参数
显示弹出窗口并立即返回(不阻止)
popup_no_wait(args=*<1 or N object>,
title=None,
button_type=0,
button_color=None,
background_color=None,
text_color=None,
auto_close=False,
auto_close_duration=None,
non_blocking=True,
icon=None,
line_width=None,
font=None,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
location=(None, None))
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
any | 任何 | *args | *参数 | 可变数量的项目显示 |
str | 字符串 | title | 标题 | 要在窗口中显示的标题。 |
int | 整型 | button_type | button_type | 确定将显示哪些预定义按钮(默认值= POPUP_BUTTONS_OK)。 |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 按钮颜色(前景,背景) |
str | 力量 | background_color | 背景颜色 | 背景色 |
str | 力量 | text_color | text_color | 文字颜色 |
bool | 布尔 | auto_close | 自动关闭 | 如果True窗口将自行关闭 |
Union[int, float] | 联合[int,float] | auto_close_duration | auto_close_duration | 旧版本仅接受int。直到窗口关闭的时间(以秒为单位) |
bool | 布尔 | non_blocking | 非阻塞 | 如果为True,则呼叫将立即返回,而不是等待用户输入 |
Union[bytes, str] | 联合[字节,str] | icon | 图标 | 用于窗口图标的文件名或base64字符串 |
int | 整型 | line_width | 行宽 | 字符的行宽 |
Union[str, Tuple[str, int]] | 联合[str,元组[str,int]] | font | 字形 | 指定字体系列,大小等 |
bool | 布尔 | no_titlebar | no_titlebar | 如果为True,则不会显示标题栏 |
bool | 布尔 | grab_anywhere | 抓住任何地方 | 如果为True:可以抓住任何地方移动窗口(默认= False) |
Tuple[int, int] | 元组[int,int] | location | 位置 | 窗口左上角的位置 |
弹出窗口调用PopupNoWait或PopupNonBlocking将创建一个弹出窗口,然后立即将控件返回给您。如果具有non_blocking参数,则可以将其他弹出调用变成非阻塞弹出。设置non_blocking为True将使函数立即返回,而不是等待窗口关闭。
该功能在调试时希望将某些内容显示为输出,但又不想通过阻塞更改程序的总体时序时非常方便。认为它像一个print声明。这些弹出窗口之一上没有返回值。
弹出参数组合
因此,您不必指定可能会很长的常用参数列表,因此有许多弹出功能可设置参数组合。例如,popup_quick_message将显示一个自动关闭且没有标题栏的非阻塞弹出窗口。您可以使用普通popup调用获得相同的最终结果。
弹出输入
对于单项输入有弹出调用。这些遵循跟随的模式,popup_get然后跟随要获取的项的类型。这些输入弹出窗口中有3种可供选择,每个窗口都有启用自定义的设置。
popup_get_text -获得一行文字
popup_get_file -获取文件名
popup_get_folder -获取文件夹名称
使用这些弹出窗口而不是创建自定义窗口来获取一个数据值,而是调用弹出窗口输入函数以从用户那里获取项目。如果发现参数无法创建您要查找的窗口,那么该您创建自己的窗口了。
popup_get_text
使用此弹出窗口可从用户获取一行文本。
显示带有文本输入字段的弹出窗口。返回输入的文本,如果关闭/取消则返回无
popup_get_text(message,
title=None,
default_text="",
password_char="",
size=(None, None),
button_color=None,
background_color=None,
text_color=None,
icon=None,
font=None,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
location=(None, None))
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
str | 字符串 | message | 信息 | 向用户显示(str)消息 |
str | 字符串 | title | 标题 | (str)窗口标题 |
str | 字符串 | default_text | default_text | (str)放入输入区的默认值 |
str | 字符串 | password_char | password_char | (str)要显示的字符,而不是实际键入的字符 |
Tuple[int, int] | 元组[int,int] | size | 尺寸 | InputText元素的(宽度,高度) |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 按钮的颜色(文本,背景) |
str | 字符串 | background_color | 背景颜色 | (str)整个窗口的背景色 |
str | 字符串 | text_color | text_color | 消息文本的(str)颜色 |
Union[bytes, str] | 联合[字节,str] | icon | 图标 | 用于窗口图标的文件名或base64字符串 |
Union[str, Tuple[str, int]] | 联合[str,元组[str,int]] | font | 字形 | 指定字体系列,大小等 |
bool | 布尔 | no_titlebar | no_titlebar | (布尔)如果为True,则不会显示标题栏 |
bool | 布尔 | grab_anywhere | 抓住任何地方 | (布尔)如果为True,则可以单击并拖动窗口中的任意位置以移动窗口 |
bool | 布尔 | keep_on_top | 保持在最前 | (布尔)如果为True,则该窗口将保留在所有当前窗口之上 |
Tuple[int, int] | 元组[int,int] | location | 位置 | (x,y)屏幕上显示窗口左上角的位置 |
Union[str, None] | 联合[str,无] | RETURN | 返回 | 输入文本或如果关闭窗口或单击取消按钮则无 |
import PySimpleGUI as sg
text = sg.popup_get_text('Title', 'Please input something')
sg.popup('Results', 'The value returned from PopupGetText', text)
popup_get_file
从用户获取一个或多个文件名。有一些选项可配置要显示的对话框的类型。通常会显示一个“打开文件”对话框。
显示带有文本输入字段和浏览按钮的弹出窗口,以便用户可以选择文件。
popup_get_file(message,
title=None,
default_path="",
default_extension="",
save_as=False,
multiple_files=False,
file_types=(('ALL Files', '*.*'),),
no_window=False,
size=(None, None),
button_color=None,
background_color=None,
text_color=None,
icon=None,
font=None,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
location=(None, None),
initial_folder=None)
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
str | 字符串 | message | 信息 | 显示给用户的消息 |
str | 字符串 | title | 标题 | 窗口标题 |
str | 字符串 | default_path | default_path | 显示给用户作为起点的路径(填写到输入字段中) |
str | 字符串 | default_extension | default_extension | 如果用户未输入扩展名,请将其添加到文件名(仅在另存为对话框中使用) |
bool | 布尔 | save_as | 另存为 | 如果为True,则显示“另存为”对话框,该对话框将在覆盖之前进行验证 |
bool | 布尔 | multiple_files | 多个文件 | 如果为True,则允许选择多个以’;'返回的文件 每个文件名之间 |
Tuple[Tuple[str,str]] | 元组[Tuple [str,str]] | file_types | 文件类型 | 要使用通配符显示的扩展列表。所有文件(默认)=((“”所有文件“,” 。 “),) |
bool | 布尔 | no_window | no_window | 如果为True,则不会显示PySimpleGUI窗口。而是只显示了tkinter对话框 |
Tuple[int, int] | 元组[int,int] | size | 尺寸 | InputText元素的(宽度,高度) |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 按钮的颜色(文本,背景) |
str | 字符串 | background_color | 背景颜色 | 整个窗口的背景色 |
str | 字符串 | text_color | text_color | 文字颜色 |
Union[bytes, str] | 联合[字节,str] | icon | 图标 | 用于窗口图标的文件名或base64字符串 |
Union[str, Tuple[str, int]] | 联合[str,元组[str,int]] | font | 字形 | 指定字体系列,大小等 |
bool | 布尔 | no_titlebar | no_titlebar | 如果为True,则不会显示标题栏 |
bool | 布尔 | grab_anywhere | 抓住任何地方 | 如果为True:可以抓住任何地方移动窗口(默认= False) |
bool | 布尔 | keep_on_top | 保持在最前 | 如果为True,则该窗口将保留在所有当前窗口之上 |
Tuple[int, int] | 元组[int,int] | location | 位置 | 窗口左上角的位置 |
str | 字符串 | initial_folder | initial_folder | 文件系统中的位置以开始浏览 |
Union[str, None] | 联合[str,无] | RETURN | 返回 | 代表所选文件的字符串,如果已取消或用X关闭窗口则为None |
如果配置为打开文件弹出窗口,则(save_as不是True)对话框将如下所示。
如果将参数save_As设置为True,则对话框如下所示:
如果您选择一个已经存在的文件名,则会出现一个警告弹出框,询问是否可以。您还可以指定一个不存在的文件。使用“打开”对话框,您不能选择不存在的文件。
典型的调用会产生此窗口。
text = sg.popup_get_file('Please enter a file name')
sg.popup('Results', 'The value returned from PopupGetFile', text)
popup_get_folder
创建用于获取文件夹名称的窗口看起来与获取文件名称相同。不同之处在于浏览按钮的功能。 PopupGetFile
显示“打开文件”对话框,同时PopupGetFolder
显示“打开文件夹”对话框。
显示带有文本输入字段和浏览按钮的弹出窗口,以便可以选择一个文件夹。
popup_get_folder(message,
title=None,
default_path="",
no_window=False,
size=(None, None),
button_color=None,
background_color=None,
text_color=None,
icon=None,
font=None,
no_titlebar=False,
grab_anywhere=False,
keep_on_top=False,
location=(None, None),
initial_folder=None)
参数说明:
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
str | 字符串 | message | 信息 | 显示给用户的消息 |
str | 字符串 | title | 标题 | 窗口标题 |
str | 字符串 | default_path | default_path | 显示给用户作为起点的路径(填写到输入字段中) |
bool | 布尔 | no_window | no_window | 如果为True,则不会显示PySimpleGUI窗口。而是只显示了tkinter对话框 |
Tuple[int, int] | 元组[int,int] | size | 尺寸 | InputText元素的(宽度,高度) |
Tuple[str, str] | 元组[str,str] | button_color | button_color | 按钮颜色(前景,背景) |
str | 字符串 | background_color | 背景颜色 | 背景色 |
str | 字符串 | text_color | text_color | 文字颜色 |
Union[bytes, str] | 联合[字节,str] | icon | 图标 | 用于窗口图标的文件名或base64字符串 |
Union[str, Tuple[str, int]] | 联合[str,元组[str,int]] | font | 字形 | 指定字体系列,大小等 |
bool | 布尔 | no_titlebar | no_titlebar | 如果为True,则不会显示标题栏 |
bool | 布尔 | grab_anywhere | 抓住任何地方 | 如果为True:可以抓住任何地方移动窗口(默认= False) |
bool | 布尔 | keep_on_top | 保持在最前 | 如果为True,则该窗口将保留在所有当前窗口之上 |
Tuple[int, int] | 元组[int,int] | location | 位置 | 窗口左上角的位置 |
str | 字符串 | initial_folder | initial_folder | 文件系统中的位置以开始浏览 |
Union[str, None] | 联合[str,无] | RETURN | 返回 | 表示所选路径的字符串,如果取消则无,或者用X关闭窗口 |
这是典型的电话
text = sg.popup_get_folder('Please enter a folder name')
sg.popup('Results', 'The value returned from PopupGetFolder', text)
popup_animated
动画弹出窗口使您可以轻松显示通过GIF文件指定的“加载”样式动画,该文件存储在文件或base64变量中。
一次显示动画一帧。此功能具有自己的内部时钟,意味着您可以在任何频率下调用它,并且视频帧的显示速率保持恒定。也许帧每30毫秒更新一次,但事件循环每10毫秒运行一次。您不必担心延迟,只需在循环中每次都调用它即可。
popup_animated(image_source,
message=None,
background_color=None,
text_color=None,
font=None,
no_titlebar=True,
grab_anywhere=True,
keep_on_top=True,
location=(None, None),
alpha_channel=None,
time_between_frames=0,
transparent_color=None,
title="")
参数类型 | 参数名 | 说明 | ||
---|---|---|---|---|
Union[str, bytes] | 联合[str,字节] | image_source | image_source | 文件名或base64字符串。 |
str | 字符串 | message | 信息 | 与动画一起显示的可选消息 |
str | 字符串 | background_color | 背景颜色 | 背景色 |
str | 字符串 | text_color | text_color | 文字颜色 |
Union[str, tuple] | 联合[str,元组] | font | 字形 | 指定字体系列,大小等 |
bool | 布尔 | no_titlebar | no_titlebar | 如果为True,则不会显示标题栏和窗口框架 |
bool | 布尔 | grab_anywhere | 抓住任何地方 | 如果为True,则只需单击窗口上的任意位置即可移动窗口,按住并拖动 |
bool | 布尔 | keep_on_top | 保持在最前 | 如果为True,则窗口将保留在当前显示的所有其他窗口的顶部 |
(int, int) | (int,int) | location | 位置 | 屏幕上的(x,y)位置以放置窗口的左上角。默认设置为在屏幕上居中 |
float | 浮动 | alpha_channel | alpha_channel | 窗口透明度0 =不可见1 =完全可见。之间的值是透明的 |
int | 整型 | time_between_frames | time_between_frames | 每帧之间的时间间隔(以毫秒为单位) |
str | 字符串 | transparent_color | transparent_color | 此颜色将在您的窗口中完全透明。甚至可以点击 |
str | 字符串 | title | 标题 | 标题将显示在窗口中 |
要关闭动画弹出窗口,请使用调用PopupAnimatedimage_source=None
。这将关闭所有当前打开的PopupAnimated
窗口。