较常用的GUI程序通常采用持久化窗口模式。读取数据但不关闭窗口,而是持续可见,作为输入输出信息的交换方式。
通过while True循环,对事件进行循环读取,达到窗口持久化的效果。
下例为一个持久化窗口,在输入框中输入内容,点击show按钮,输入内容会显示在第一行文本右侧。




import PySimpleGUI as sg
layout = [[sg.Text('Your typed chars appear here:'), sg.Text(size=(15,1), key='-OUTPUT-')],
[sg.Input(key='-IN-')],
[sg.Button('Show'), sg.Button('Exit')]]
window = sg.Window('Pattern 2B', layout)
while True: # 窗口持久化
event, values = window.read() # 读取窗口
# 判断事件
if event == sg.WIN_CLOSED or event == 'Exit': # 如果事件是关闭窗口或点击exit按钮,跳出循环
break
if event == 'Show':
# 通过key键['-OUTPUT-']获取窗口元素,然后通过update方法进行元素内容更新。
window['-OUTPUT-'].update(values['-IN-'])
window.close() # 退出窗口