Python 使用流程更新gui项

Python 使用流程更新gui项,python,pysimplegui,Python,Pysimplegui,我正在尝试为我的应用程序制作GUI,但遇到了一个问题: 使用PySimpleGUI我必须首先定义布局,然后才显示整个窗口。现在代码是这样的: import PySimpleGUI as sg layout = [[sg.Text('Input:')], [sg.Input(do_not_clear=False)], [sg.Button('Read'), sg.Exit()], [sg.Text('

我正在尝试为我的应用程序制作GUI,但遇到了一个问题: 使用
PySimpleGUI
我必须首先定义布局,然后才显示整个窗口。现在代码是这样的:

import PySimpleGUI as sg      

layout = [[sg.Text('Input:')],      
          [sg.Input(do_not_clear=False)],      
          [sg.Button('Read'), sg.Exit()],
          [sg.Text('Alternatives:')],
          [sg.Listbox(values=('value1', 'value2', 'value3'), size=(30, 2))]]      

window = sg.Window('Alternative items', layout)      

while True:      
    event, values = window.Read()      
    if event is None or event == 'Exit':      
        break      
    print(values[0])    

window.Close()

是否只能在按下
读取
按钮后显示
列表框
?因为我只会在输入后获取
Listbox
的值。在按钮事件之后,是否可能以某种方式使用新值更新列表框?

确实可以在按钮事件之后使用新值更新列表框。我只需要在你的代码中添加几行就可以得到这个

只要您希望更改现有窗口中元素的值,就可以使用元素的
Update
方法进行更改。请查看上一节下的包文档

可以隐藏元素,但不建议隐藏。相反,创建一个新窗口并关闭旧窗口。GitHub上有许多演示程序,向您展示如何使用多个窗口

将PySimpleGUI导入为sg
布局=[[sg.Text('输入:')],
[sg.输入(不清除=假)],
[sg.按钮('Read'),sg.退出(),
[sg.Text('备选方案:')],
[sg.Listbox(值=('value1','value2','value3'),大小=(30,2),键=''Listbox']]
窗口=sg.window('替代项目',布局)
尽管如此:
事件,值=window.Read()
打印(事件、值)
如果事件为无或事件==“退出”:
打破
如果事件==“读取”:
元素(“列表框”)更新(值=[“新值1”、“新值2”、“新值3]”)
window.Close()

你得到了对你有用的答案吗?我用了你的答案:)