• python GUI(五)预设弹窗介绍


    1、弹窗的作用

    弹窗的作用:
    弹窗可以包含内容是个可变参数
    等效于pring语句,暂停程序的运行,让用户读取一些信息

    try:
    print(a)
    except Exception as e:
    sg.Popup(e)

    2、Popup弹窗介绍

    sg.popup()orsg.Popup()

    
    Popup(
    	args=*<1 or N object>,
    	# 可变参数
        title=None,
        # 弹窗标题,如果未设定,则默认显示可变参数的第一个文本作为标题。
        button_color=None,
        # (文本颜色,背景颜色)
        background_color=None,
        # 弹窗的背景颜色
        text_color=None,
        # 弹窗上面的文本颜色
        auto_close=False,
        # 如果设定为True,弹窗会自动关闭界面
        auto_close_duration=None,
        # 自动关闭窗口之前界面持续的时间(以秒为单位)
        custom_text=(None, None),
        # 自定义按钮上要显示的文本。可以设定一个或者两个
        non_blocking=False,
        # 非阻塞设定。如果为True,立即执行下一步。不需要等待用户的输入。
        font=None,
        # 字体大小,名称设定
        no_titlebar=False,
        # 不显示标题栏。
        grab_anywhere=False,
        # 如果为True,拖动界面进行移动。
        keep_on_top=False,
        # 如果为True,保持界面在屏幕的最前方
        location=(None, None),
        # 界面出现的位置
        any_key_closes=False,
        # 如果为True,敲打任意键盘就会关闭界面.
        # 如果为False,只用X窗口关闭按钮,用户选择,以及回车键才会关闭窗口。
        image=None,
        # 显示图片(支持base64)
        modal=True
        # 模态窗口设定。
        # 除非关闭此窗口否则其他界面不能进行操作。
    
        )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    import  PySimpleGUI as sg
    
    layout = [[sg.Ok()]]
    windows = sg.Window('pysimplegui',layout)
    
    while True:
        event, values = windows.read()
        print(event)
        if event==None:
            break
        if event == 'Ok':
            sg.Popup("第一行文本","第二行文本"*4,title='test',
                     button_color=("blue","red"),
                     text_color="black",
                     # auto_close=True,
                     auto_close_duration=20,
                     # custom_text=('确定','取消'),
                     # non_blocking=True,
                     font=("黑体",20),
                     no_titlebar=True,
                     grab_anywhere=True,
                     keep_on_top=True,
                     location=(0,0),
                     any_key_closes=True,
                     image="",  # 路径或base64
                     modal=True,
                     )
    
    print("看看阻塞了没有")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    关于Popup的返回值介绍

    1. 返回为None,如果点击了关闭窗口按钮 (默认情况下可以按enter键关闭,关闭键X,以及OK按钮)

    2. 返回为按钮元素的文本信息,如果点击了按钮元素。

    result =sg.Popup("test"*5,any_key_closes=True)
    print(result)
    
    • 1
    • 2

    3、弹窗介绍PopupGetText

    弹窗特征:

    显示带有文本输入字段的弹出窗口。

    返回输入的文本,如果关闭/取消则返回None。

    sg.PopupGetText()or
    sg.popup_get_text()

    PopupGetText(
    	message,
    	# 显示的文本
    
        title=None,
        # 标题设定
    
        default_text="",
        # 输入框内默认文本设定
    
        password_char="",
        # 密码字符 一般设定为*
    
        size=(None, None),
        # 单行输入框的宽度和行高设定
    
        button_color=None,
        # 按钮元素的(文本颜色,背景颜色)设定
    
        background_color=None,
        # 界面背景颜色设定
    
        text_color=None,
        # 文本颜色设定
    
        font=None,
       	# 字体名称和大小设定
    
        no_titlebar=False,
        # 无标题栏设定
    
        grab_anywhere=False,
        # 移动窗口设定
    
        keep_on_top=False,
        # 保持该弹窗在界面的最前方
    
        location=(None, None),
        # 窗口出现的位置设定
    
        image=None,
        # 图片上传
    
        modal=True
        #模态界面设定。如果为True,其他界面无法操作。
    
        )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    pw = '123'
    for i in range(5):
        result = sg.PopupGetText("请输入密码!",title="密码输入界面",
                        default_text="密码",
                        password_char='#'
                        )
        print(result)
        if result == pw:
            windows = sg.Window('pysimplegui', [[sg.Text("完善信息")]])
            event, value = windows.read()
            exit()
        elif result == None:
            exit()
        else:
            sg.Popup("密码输入错误,请重新输入")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4、弹窗介绍PopupGetFile

    弹窗特征:

    显示带有文本输入字段和浏览(browse)按钮的弹出窗口,以便用户可以选择文件。

    sg.PopupGetFile()or
    sg.popup_get_file()

    
    PopupGetFile(
    	message,
        # 文本设定
        title=None,
        # 窗口标题设定
        default_path="",
        # 默认文件路径
        save_as=False,
        # 如果设定为True,打开按钮变成的另存为按钮,显示Save As...
        multiple_files=False,
        # 如果为True,可以多选。
        file_types=(('ALL Files', '*.*'),),
        # 设定可选文件类型。默认所有。
        no_window=False,
        # 直接打开文件资源管理器,不显示弹窗界面。
        size=(None, None),
        # 单行输入框的宽度行高的设定
        button_color=None,
        # 按钮元素(文本颜色,背景颜色)的设定
        background_color=None,
        # 整个界面的背景颜色的设定
        text_color=None,
        # 文本字体颜色的设定
        font=None,
        # 字体名称,大小设定
        no_titlebar=False,
        # 如果为True,不显示标题栏。
        grab_anywhere=False,
        # 如果为True,可以拖拽界面
        keep_on_top=False,
        # 如果为True,窗口保持在界面的最前方。
        location=(None, None),
        # 界面运行出现的初始位置)
        initial_folder=None,
        # 打开咨询管理器时默认的文件夹
        image=None,
        # 图片上传
        modal=True
        # 模态窗口)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    sg.popup_get_file("请输入文件路径",
                      title="文件选择器",
                      default_path=r"C:\Users\Admin\Desktop\测试用例",
                      save_as=True,
                      multiple_files=True,
                      file_types=(("All files",'*.png'),),
                      no_window=True
                      )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    返回值
    关闭窗口返回的是none
    在no_window=True和multiple_files=True同时为True时,返回的是元祖类型,其它情况返回的是字符串类型,当仅multiple_files=True为True时,返回的是分号分割开的字符串类型

    5、弹窗介绍PopupGetFolder

    弹窗特征:

    显示带有文本输入字段和浏览按钮的弹出窗口,以便可以选择文件夹。

    sg.PopupGetFolder()or
    sg.popup_get_folder()

    PopupGetFolder(
        message,
        title=None,
        default_path="",
        no_window=False,
        size=(None, None),
        button_color=None,
        background_color=None,
        text_color=None,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        initial_folder=None,
        image=None,
        modal=True)
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    弹窗介绍PopupAnnoying

    弹窗特征:

    没有标题栏,可以随意移动窗口。

    PopupAnnoying(
    	args=*<1 or N object>,
        title=None,
        button_color=None,
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=False,
        font=None,
        grab_anywhere=True,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    弹窗介绍PopupAutoClose

    弹窗特征:

    显示一段时间后自动关闭窗口。

    PopupAutoClose(
    	args=*<1 or N object>,
        title=None,
        button_color=None,
        background_color=None,
        text_color=None,
        auto_close=True,
        auto_close_duration=None,
        non_blocking=False,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    弹窗介绍PopupCancel

    弹窗特征:

    含有一个Cancelled的按钮。

    PopupCancel(args=*<1 or N object>,
        title=None,
        button_color=None,
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=False,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    弹窗介绍PopupOKCancel

    弹窗特征:

    弹窗含有OK和Cancel两个按钮。

    PopupOKCancel(args=*<1 or N object>,
        title=None,
        button_color=None,
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=False,
        icon=...,
        line_width=None,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    弹窗介绍PopupError

    弹窗特征:

    含有一个带有颜色的Error按钮

    
    PopupError(args=*<1 or N object>,
        title=None,
        button_color=(None, None),
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=False,
        line_width=None,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    弹窗介绍PopupNoButtons

    弹窗特征:

    显示无按钮的弹窗。

    
    PopupNoButtons(args=*<1 or N object>,
        title=None,
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=False,
        line_width=None,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=True)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    弹窗介绍PopupNoWait

    弹窗特征:

    显示弹出窗口并立即返回

    
    PopupNoWait(args=*<1 or N object>,
        title=None,
        button_color=None,
        background_color=None,
        text_color=None,
        auto_close=False,
        auto_close_duration=None,
        non_blocking=True,
        line_width=None,
        font=None,
        no_titlebar=False,
        grab_anywhere=False,
        keep_on_top=False,
        location=(None, None),
        image=None,
        modal=False)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    sg.PopupGetFolder("请选择文件夹")
    sg.popup_annoying("没有标题的弹窗")
    sg.popup_auto_close("自动关闭弹窗")
    sg.popup_cancel()
    sg.popup_ok()
    sg.popup_ok_cancel()
    sg.popup_error()
    sg.popup_no_border("没有按钮")
    sg.popup_no_wait()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    [sg.Popup(f"这是第{i}个弹窗",location=(100,100*i), non_blocking=True) for i in range(1,5)]
    
    sg.popup("最后一个")
    
    • 1
    • 2
    • 3
  • 相关阅读:
    入门力扣自学笔记164 C++ (题目编号:面试题 01.08)
    python写带ACL的kafka集群问题
    基于keras的transformer learning rate schedule
    Candence Virtuoso基本电路设计(一)
    STM32 HAL高级定时器正交编码模式案例
    「限量招募30人」免费参与SPSS云版本内测
    SparkML
    Idea debug失败,但是run可以正常
    如何在linux系统中设置定时任务?
    Fastjson 1.2.24反序列化漏洞(Vulhub)使用方法
  • 原文地址:https://blog.csdn.net/Mwyldnje2003/article/details/126826277