wxpython如何检测到一个父窗口的一个子窗口frame关闭
时间: 2023-06-15 10:04:24 浏览: 85
如何在父窗口中得知window.open()出的子窗口关闭事件
可以通过在父窗口中定义一个方法,在该方法中检测子窗口frame是否关闭来实现。具体步骤如下:
1. 在父窗口中定义一个方法,例如 `on_child_close`,用于检测子窗口frame是否关闭。
2. 在子窗口中重载 `on_close` 方法,当子窗口frame关闭时,调用父窗口的 `on_child_close` 方法。
代码示例:
```python
import wx
class ChildFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="Child Frame")
self.Bind(wx.EVT_CLOSE, self.on_close)
def on_close(self, event):
# 调用父窗口的 on_child_close 方法
self.GetParent().on_child_close()
event.Skip()
class ParentFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="Parent Frame")
self.child_frame = ChildFrame(self)
def on_child_close(self):
# 子窗口关闭时的操作
print("Child frame is closed.")
if __name__ == '__main__':
app = wx.App()
frame = ParentFrame()
frame.Show()
app.MainLoop()
```
在上面的示例中,当子窗口frame关闭时,会调用父窗口的 `on_child_close` 方法,输出提示信息 "Child frame is closed."。
阅读全文