python 笔记 PySimpleGUI 图形界面5-高级API调用- 提示框控件

原文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。

该功能PopupTimedPopupAutoClose为弹出窗口,在一段时间后将自动关闭。

这是显示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_colorbutton_color显示的按钮颜色(文本颜色,按钮颜色)
str字符串background_color背景颜色窗口的背景色
str字符串text_colortext_color文字颜色
int整型button_typebutton_type没有用户设置!确定将显示哪些预定义按钮(默认值= POPUP_BUTTONS_OK)。有很多Popup函数,它们调用Popup,更改此参数以获得所需的效果。
bool布尔auto_close自动关闭如果为True,则窗口将自动关闭
int整型auto_close_durationauto_close_duration在自动关闭窗口之前保持窗口打开的时间(以秒为单位)
Union[Tuple[str, str], str]联合[元组[str,str],str]custom_textcustom_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_colorbutton_color按钮颜色(前景,背景)
bool布尔yes_noyes_no如果为True,则显示“是”和“否”按钮,而不是“确定”
bool布尔auto_close自动关闭如果True窗口将自行关闭
Union[int, float]联合[int,float]auto_close_durationauto_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_typebutton_type确定将显示哪些预定义按钮(默认值= POPUP_BUTTONS_OK)。
Tuple[str, str]元组[str,str]button_colorbutton_color按钮颜色(前景,背景)
str力量background_color背景颜色背景色
str力量text_colortext_color文字颜色
bool布尔auto_close自动关闭如果True窗口将自行关闭
Union[int, float]联合[int,float]auto_close_durationauto_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_titlebarno_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_textdefault_text(str)放入输入区的默认值
str字符串password_charpassword_char(str)要显示的字符,而不是实际键入的字符
Tuple[int, int]元组[int,int]size尺寸InputText元素的(宽度,高度)
Tuple[str, str]元组[str,str]button_colorbutton_color按钮的颜色(文本,背景)
str字符串background_color背景颜色(str)整个窗口的背景色
str字符串text_colortext_color消息文本的(str)颜色
Union[bytes, str]联合[字节,str]icon图标用于窗口图标的文件名或base64字符串
Union[str, Tuple[str, int]]联合[str,元组[str,int]]font字形指定字体系列,大小等
bool布尔no_titlebarno_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_pathdefault_path显示给用户作为起点的路径(填写到输入字段中)
str字符串default_extensiondefault_extension如果用户未输入扩展名,请将其添加到文件名(仅在另存为对话框中使用)
bool布尔save_as另存为如果为True,则显示“另存为”对话框,该对话框将在覆盖之前进行验证
bool布尔multiple_files多个文件如果为True,则允许选择多个以’;'返回的文件 每个文件名之间
Tuple[Tuple[str,str]]元组[Tuple [str,str]]file_types文件类型要使用通配符显示的扩展列表。所有文件(默认)=((“”所有文件“,” 。 “),)
bool布尔no_windowno_window如果为True,则不会显示PySimpleGUI窗口。而是只显示了tkinter对话框
Tuple[int, int]元组[int,int]size尺寸InputText元素的(宽度,高度)
Tuple[str, str]元组[str,str]button_colorbutton_color按钮的颜色(文本,背景)
str字符串background_color背景颜色整个窗口的背景色
str字符串text_colortext_color文字颜色
Union[bytes, str]联合[字节,str]icon图标用于窗口图标的文件名或base64字符串
Union[str, Tuple[str, int]]联合[str,元组[str,int]]font字形指定字体系列,大小等
bool布尔no_titlebarno_titlebar如果为True,则不会显示标题栏
bool布尔grab_anywhere抓住任何地方如果为True:可以抓住任何地方移动窗口(默认= False)
bool布尔keep_on_top保持在最前如果为True,则该窗口将保留在所有当前窗口之上
Tuple[int, int]元组[int,int]location位置窗口左上角的位置
str字符串initial_folderinitial_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_pathdefault_path显示给用户作为起点的路径(填写到输入字段中)
bool布尔no_windowno_window如果为True,则不会显示PySimpleGUI窗口。而是只显示了tkinter对话框
Tuple[int, int]元组[int,int]size尺寸InputText元素的(宽度,高度)
Tuple[str, str]元组[str,str]button_colorbutton_color按钮颜色(前景,背景)
str字符串background_color背景颜色背景色
str字符串text_colortext_color文字颜色
Union[bytes, str]联合[字节,str]icon图标用于窗口图标的文件名或base64字符串
Union[str, Tuple[str, int]]联合[str,元组[str,int]]font字形指定字体系列,大小等
bool布尔no_titlebarno_titlebar如果为True,则不会显示标题栏
bool布尔grab_anywhere抓住任何地方如果为True:可以抓住任何地方移动窗口(默认= False)
bool布尔keep_on_top保持在最前如果为True,则该窗口将保留在所有当前窗口之上
Tuple[int, int]元组[int,int]location位置窗口左上角的位置
str字符串initial_folderinitial_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_sourceimage_source文件名或base64字符串。
str字符串message信息与动画一起显示的可选消息
str字符串background_color背景颜色背景色
str字符串text_colortext_color文字颜色
Union[str, tuple]联合[str,元组]font字形指定字体系列,大小等
bool布尔no_titlebarno_titlebar如果为True,则不会显示标题栏和窗口框架
bool布尔grab_anywhere抓住任何地方如果为True,则只需单击窗口上的任意位置即可移动窗口,按住并拖动
bool布尔keep_on_top保持在最前如果为True,则窗口将保留在当前显示的所有其他窗口的顶部
(int, int)(int,int)location位置屏幕上的(x,y)位置以放置窗口的左上角。默认设置为在屏幕上居中
float浮动alpha_channelalpha_channel窗口透明度0 =不可见1 =完全可见。之间的值是透明的
int整型time_between_framestime_between_frames每帧之间的时间间隔(以毫秒为单位)
str字符串transparent_colortransparent_color此颜色将在您的窗口中完全透明。甚至可以点击
str字符串title标题标题将显示在窗口中

要关闭动画弹出窗口,请使用调用PopupAnimatedimage_source=None。这将关闭所有当前打开的PopupAnimated窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值