在进程中更新 gui 项目
Updating gui items withing the process
我正在尝试为我的应用制作 GUI,但 运行 遇到了问题:
使用 PySimpleGUI
我必须首先定义布局,然后才显示整个 window。现在的代码是这样的:
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()
是否可以在按下 Read
按钮后仅显示 Listbox
?因为我只会在输入后获得 Listbox
的值。也许可以在按钮事件后用新值更新列表框?
确实可以在按钮事件后用新值更新列表框。我只需要在你的代码中添加几行就可以得到这个。
任何时候您希望更改现有 window 中元素的值,您将使用元素的 update
方法来完成。查看包文档 http://www.PySimpleGUI.org under the section on Updating Elements.
可以隐藏元素,但不推荐。相反,创建一个新的 window 并关闭旧的。 GitHub 上有许多演示程序向您展示如何执行多个 windows。
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), key='_LISTBOX_')]]
window = sg.Window('Alternative items', layout)
while True:
event, values = window.read()
print(event, values)
if event == sg.WIN_CLOSED or event == 'Exit':
break
if event == 'Read':
window.Element('-LISTBOX-').update(values=['new value 1', 'new value 2', 'new value 3'])
window.close()
我正在尝试为我的应用制作 GUI,但 运行 遇到了问题:
使用 PySimpleGUI
我必须首先定义布局,然后才显示整个 window。现在的代码是这样的:
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()
是否可以在按下 Read
按钮后仅显示 Listbox
?因为我只会在输入后获得 Listbox
的值。也许可以在按钮事件后用新值更新列表框?
确实可以在按钮事件后用新值更新列表框。我只需要在你的代码中添加几行就可以得到这个。
任何时候您希望更改现有 window 中元素的值,您将使用元素的 update
方法来完成。查看包文档 http://www.PySimpleGUI.org under the section on Updating Elements.
可以隐藏元素,但不推荐。相反,创建一个新的 window 并关闭旧的。 GitHub 上有许多演示程序向您展示如何执行多个 windows。
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), key='_LISTBOX_')]]
window = sg.Window('Alternative items', layout)
while True:
event, values = window.read()
print(event, values)
if event == sg.WIN_CLOSED or event == 'Exit':
break
if event == 'Read':
window.Element('-LISTBOX-').update(values=['new value 1', 'new value 2', 'new value 3'])
window.close()