如何关闭 MDIParentFrame 中的所有 MDIChildFrame?是否有内置功能可以做到这一点?
frame = MyFrame(None) #MDIParentFrame
frame.Show()
child1 = MDIChildFrame(frame, "MDIChildFrame")
child1.Show()
您可以尝试通过GetClientWindow()方法获取客户端窗口,然后通过GetChildren()获取该客户端窗口的子窗口列表,遍历该列表,使用IsKindOf()宏检查子窗口是否为 wxMDIChildFrame,如果返回 true然后调用Close()。wxPython 类应该具有与 C++ 版本相同的方法列表。
使用 wxWindow::GetChildren() 会不会简单很多
http://docs.wxwidgets.org/2.8/wx_wxwindow.html#wxwindowgetchildren
但是你必须小心:MDIChildFrame 窗口不是 MDIParentFrame 的子级,它们是通过 wxMDIClientWindow 的孙子级