【GUI】Python图形界面(三)

Python图形界面

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

1. 列表元素的书写方法

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

2. 按键元素的设定方法

sg.LB(list, size=(None, None))
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. 列表元素的更新方法

window[key].update()
window[key].Update() 

2. 参数

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

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

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()

请添加图片描述

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

sg.Combo()
sg.InputCombo()
sg.DropDown()
sg.Drop()
  • 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. 下拉菜单的更新方法

window[key].update()
window[key].Update() 

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

value=None,  # 更新默认选中的选项
values=None,  # 更新显示的所有下拉菜单文本
set_to_index=None, # 高亮显示设定的索引的文本
disabled=None,  # 更新元素的禁用状态
readonly=None,  # 更新元素是否只读
font=None,  # 更新元素的字体名称或者大小
visible=None  # 定义元素为不可见
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()
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬小帽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值