有没有办法读取 PySimpleGUI 组合框的值属性?

问题描述 投票:0回答:1

我创建了一个 PySimpleGUI 组合框,其代码简化为:

combo_list = ['Choice 1', 'Choice 2']    
layout = [[sg.Combo(combo_list, default_value=combo_list[0], key='-COMBO-', enable_events=True)]]

用户可以将项目添加到下拉列表中,当他退出应用程序时,我保存更新后的combo_list,以便在程序下次运行时可以使用它。目前,我正在通过将用户创建的任何新条目添加到我的combo_list 数组中来执行此操作。但是有没有一种方法可以简单地从 Combo 元素本身读回更新的参数“值”,而不必通过更新combo_list 数组来隐藏它?

使用

window['-COMBO-'].get()
读回用户选择的值没有问题,但尽管检查了 PySimpleGUI 文档,更一般地说,我无法找到读取值列表的方法。如果这是不可能的,每当用户添加项目时我将继续更新combo_list数组。但如果知道的话就好了。

python pysimplegui
1个回答
0
投票

得到

返回 Combo 的当前(现在)值。不要将此作为阅读组合的正常方式!您应该使用调用 window.read 时的值。如果您使用它,就知道您在做什么。

要获取Combo元素的

combo_list
,可以通过tkinter代码获取,如
window['-COMBO-'].widget['values']

import PySimpleGUI as sg

combo_list = ['Choice 1', 'Choice 2']
layout = [[sg.Combo(combo_list, default_value=combo_list[0], key='-COMBO-', enable_events=True)]]

window = sg.Window("Title", layout)

while True:

    event, values = window.read()

    if event == sg.WIN_CLOSED:
        break
    print(event, values)
    print(window['-COMBO-'].widget['values'])

window.close()
-COMBO- {'-COMBO-': 'Choice 2'}
('Choice 1', 'Choice 2')
© www.soinside.com 2019 - 2024. All rights reserved.