pysimplegui中combo如何设置第2次运行时为原始状态
时间: 2024-10-06 10:01:05 浏览: 25
在PySimpleGUI中,如果你想要在第二次运行时恢复组合框(Combo Box)到其原始状态,通常这涉及到保存组合框的状态并在下次启动时加载。你可以创建一个回调函数来存储当前的选择,然后在初始化界面时检查这个状态并设置组合框。
1. **保存组合框状态**[^1]:
当用户选择一个新的选项时,你可以将其添加到一个变量中,比如`last_selection`:
```python
import PySimpleGUI as sg
last_selection = None # 假设这是你存储上一次选择的地方
def on_combobox_change(values):
nonlocal last_selection
last_selection = values[0]
# 创建组合框
layout = [[sg.Combo(values=['Option 1', 'Option 2', 'Option 3'], key='-COMBO-', bind_return_key=True, change_submits=True, size=(20, 1), callback=on_combobox_change)]]
window = sg.Window('Demo', layout)
# 如果有上次的选中项,设置它
if last_selection is not None:
window['-COMBO-'].update(value=last_selection)
```
2. **初始化界面时检查并设置**:
在窗口初始化时,检查`last_selection`变量是否已定义,如果存在则设置组合框:
```python
while True: # Event Loop
event, values = window.read()
if event in (sg.WINDOW_CLOSED, 'Exit'):
break
# ...其他逻辑...
if event == '-COMBO-' and last_selection is not None:
window['-COMBO-'].update(value=last_selection)
window.close()
```
这样,在每次程序重新打开时,如果`last_selection`不是None,组合框就会显示用户上次选择的选项。
阅读全文