我的gui包装在一个class里,self.window = sg.Window("RVC - GUI", layout=layout)这是我的gui信息,我该如何使用close_callback呢
时间: 2024-03-11 19:43:28 浏览: 108
如果您的GUI已经包装在一个类中,您可以将`close_callback`函数作为实例方法添加到该类中,然后在创建窗口时传递该实例方法作为`close_callback`参数。
以下是一个示例代码,其中我们创建了一个名为`MyGUI`的类,并将`on_close`方法作为`close_callback`参数传递给`sg.Window`:
```python
import PySimpleGUI as sg
class MyGUI:
def __init__(self):
layout = [[sg.Text('Hello from PySimpleGUI')], [sg.Button('Exit')]]
self.window = sg.Window('Window Title', layout, close_callback=self.on_close)
def run(self):
while True:
event, values = self.window.read()
if event in (None, 'Exit'):
break
self.window.close()
def on_close(self):
print('Window is closing')
if __name__ == '__main__':
gui = MyGUI()
gui.run()
```
在这个代码中,我们创建了一个名为`MyGUI`的类,该类包含一个名为`on_close`的实例方法。我们在`__init__`方法中创建了一个窗口,并将`on_close`方法作为`close_callback`参数传递给`sg.Window`。在`run`方法中,我们使用一个while循环来监听窗口事件,并在用户点击退出按钮或关闭窗口时退出循环并关闭窗口。
您可以将`on_close`方法替换为您自己的逻辑,以在窗口关闭时执行特定的操作。
阅读全文