• 【GUI】Python图形界面(三)


    Python图形界面

    十五、列表元素的设定方法

    1. 列表元素的书写方法

    list = ['python', 'java', 'c++', 'php', 'html']
    sg.Listbox(list)
    sg.LB(list)
    
    • 1
    • 2
    • 3

    2. 按键元素的设定方法

    sg.LB(list, size=(None, None))
    
    • 1
    import PySimpleGUI as sg
    
    list = ['python', 'java', 'c++', 'php', 'html']
    
    layout = [
                 [sg.LB(list,
                        default_values=None,  # 默认选中的值或者列表
                        key='-LB',  # 元素的唯一标识符
                        select_mode=None,  # 选择模式,有效值包含如下4种。
                        # single,单选,更换时点击选择
                        # multiple,可以多选,逐一点击选择
                        # browse, 单选,鼠标按住也可以更换选择
                        # extended,可以多选,鼠标按住也可以扩展选择
                        enable_events=False,  # 元素的事件属性
                        # 如果设定为 True,元素列表项目被选中时会发生事件
                        bind_return_key=False,  # 绑定回车键
                        # 如果设定为True,回车键被按下时相当于此元素被点击
                        size=(30, 6),  # 字符宽度,行高
                        disabled=False,  # 元素是否禁用
                        auto_size_text=None,  # 如果为True,元素自动根据内容大小调整
                        font=None,  # 设置字体名称或者大小
                        no_scrollbar=False,  # 如果为True,则没有滚动条
                        background_color=None,  # 背景颜色
                        text_color=None,  # 字体颜色设定
                        pad=None,  # 元素间隔设定
                        tooltip=None, # 悬浮文本
                        right_click_menu=None, # 右击调出菜单
                        visible=True # 元素可见状态设定
                        )]
             ],
    
    # 创建窗口
    window = sg.Window('Python GUI', layout)
    
    # 事件循环
    while True:
        event, values = window.read()  # 窗口的读取,有两个返回值(1.事件,2.值)
        print(event)
        if event == None:  # 窗口关闭事件
            break
    # 关闭窗口
    window.close()
    
    • 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

    十六、列表元素的更新方法

    1. 列表元素的更新方法

    window[key].update()
    window[key].Update() 
    
    • 1
    • 2

    2. 参数

    values = None
    disabled = None # 更新元素是否禁用
    set_to_index = None # 高亮显示设定的索引
    # 注意,单击只是高亮显示,并未选中。双击才是高亮显示+选中
    # 单击获取值时,不用values(key),而是window[key].get()
    scroll_to_index = None # 将设定的索引调到要显示第一行
    select_mode = None # 更新元素的选择模式
    visible = None # 更新元素的可见状态
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    十七、在窗口上调用字典里面的键和值

    import PySimpleGUI as sg
    dict = {'杨幂':'python', '赵丽颖':'java', '刘诗诗':'php', '郭敬明':'html'}
    list = []
    for i in dict:
        list.append(i)
    layout = [
        [sg.LB(list, key='-LB-', size=(30,6), enable_events=True)],
        [sg.T('语言'), sg.In(key='-YY-',size=(25))]
    ]
    # 创建窗口
    window = sg.Window('Python GUI', layout)
    
    # 事件循环
    while True:
        event, values = window.read()  # 窗口的读取,有两个返回值(1.事件,2.值)
        print(event)
        if event == None:   # 窗口关闭事件
            break
        if event == '-LB-':
            window['-YY-'].update(dict[values['-LB-'][0]])
    # 关闭窗口
    window.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    请添加图片描述

    十八、下拉菜单的设定方法

    sg.Combo()
    sg.InputCombo()
    sg.DropDown()
    sg.Drop()
    
    • 1
    • 2
    • 3
    • 4
    • Combo 和 Listbox 最大的区别在于,可以输入,但是不能多选。Listbox 取得的值是存放在类别里面,但是 Combo 取得的值是对象本身。
    import PySimpleGUI as sg
    
    list = ['python', 'java', 'c++', 'php', 'html']
    
    layout = [
                 [sg.Drop(list,
                          default_value=None,  # 默认选中的值或者列表
                          key='-LB',  # 元素的唯一标识符
                          size=(30, 6),  # 字符宽度,行高
                          auto_size_text=None,  # 如果为True,元素自动根据内容大小调整
                          background_color=None,  # 背景颜色
                          text_color=None,  # 字体颜色设定
                          enable_events=False,  # 元素事件属性,如果设定为True,当元素被选中时,会发生一个事件
                          disabled=False,  # 元素禁用状态设定
                          pad=None,  # 元素间隔设定
                          tooltip=None,  # 悬浮文本
                          readonly=False,  # 元素只读属性,只能选择,不能输入内容
                          font=None,  # 元素字体名称或者大小设定
                          visible=True  # 元素可见状态设定
                          )]
             ],
    
    # 创建窗口
    window = sg.Window('Python GUI', layout)
    
    # 事件循环
    while True:
        event, values = window.read()  # 窗口的读取,有两个返回值(1.事件,2.值)
        print(event)
        if event == None:  # 窗口关闭事件
            break
    # 关闭窗口
    window.close()
    
    • 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

    十九、下拉菜单的更新方法及小练习

    1. 下拉菜单的更新方法

    window[key].update()
    window[key].Update() 
    
    • 1
    • 2

    2. 下拉菜单可更新的属性

    value=None,  # 更新默认选中的选项
    values=None,  # 更新显示的所有下拉菜单文本
    set_to_index=None, # 高亮显示设定的索引的文本
    disabled=None,  # 更新元素的禁用状态
    readonly=None,  # 更新元素是否只读
    font=None,  # 更新元素的字体名称或者大小
    visible=None  # 定义元素为不可见
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    import PySimpleGUI as sg
    dict = {'杨幂':'python', '赵丽颖':'java', '刘诗诗':'php', '郭敬明':'html'}
    list = []
    for i in dict:
        list.append(i)
    layout = [
        [sg.Combo(list,key='-LB-', size=(30,6), enable_events=True)],
        [sg.T('语言'), sg.In(key='-YY-',size=(25))]
    ]
    # 创建窗口
    window = sg.Window('Python GUI', layout)
    
    # 事件循环
    while True:
        event, values = window.read()  # 窗口的读取,有两个返回值(1.事件,2.值)
        print(event)
        if event == None:   # 窗口关闭事件
            break
        if event == '-LB-':
            window['-YY-'].update(dict[values['-LB-']])
    # 关闭窗口
    window.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    企业直播:会畅通讯、好视通、飞书见仁见智
    linux中利用VScode编写C++程序
    【面试普通人VS高手系列】谈谈你对Seata的理解
    SpringMVC 写个 HelloWorld
    华为FAT模式无线AP配置实例
    【普通人解题】leetcode 62. 不同路径
    思腾云计算
    JSD-2204-MyBatis动态sql,修改,查询-Day04
    C#的基于.net framework的Winform编程 - 编程手把手系列文章
    SpringBootWeb 篇-入门了解 Apache POI 使用方法
  • 原文地址:https://blog.csdn.net/sgsgkxkx/article/details/125336549