pysimplegui如何让窗口在计算完成后不关闭
时间: 2024-04-21 17:23:08 浏览: 117
您可以使用`Window.finalize()`方法来实现窗口在计算完成后不关闭。这个方法会将窗口设置为不可修改状态,并且在点击关闭按钮时不会自动关闭窗口。您可以在计算完成后调用这个方法,然后通过其他方式来关闭窗口,比如点击一个自定义的关闭按钮或者执行某些特定的操作。以下是一个示例代码:
```python
import PySimpleGUI as sg
layout = [[sg.Text('计算中,请稍等...', key='-STATUS-')],
[sg.Button('关闭')]]
window = sg.Window('窗口标题', layout, finalize=True)
# 模拟计算过程
import time
time.sleep(5)
window['-STATUS-'].update('计算完成')
window.Element('关闭').update(disabled=False) # 启用关闭按钮
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == '关闭':
break
window.close()
```
在上面的示例中,我们首先创建了一个包含一个文本和一个按钮的布局。然后我们创建了一个窗口,并调用`finalize()`方法将窗口设置为最终状态。接下来,我们模拟了一个耗时的计算过程(使用`time.sleep(5)`),然后更新了文本的内容为"计算完成",并将关闭按钮启用。最后,我们通过循环来监听窗口的事件,并在用户点击关闭按钮或者关闭窗口时退出循环,并关闭窗口。
这样,您就可以在计算完成后保持窗口不关闭。
阅读全文