同時顯示多個視窗的一種方法是建立它們作為獨立的視窗。這被稱為SDI(單文件介面)。這需要更多的儲存器資源,每個視窗可以具有其自己的選單系統,工具列等等
下面的例子演示MDIParentFrame的用途為頂層視窗。選單按鈕被稱為NewWindow增加在客戶區的子視窗。多個視窗可以被新增,然後設定為層疊或平鋪順序。
import wx class MDIFrame(wx.MDIParentFrame): def __init__(self): wx.MDIParentFrame.__init__(self, None, -1, "MDI Parent - www.tw511.com", size = (600,400)) menu = wx.Menu() menu.Append(5000, "&New Window") menu.Append(5001, "&Exit") menubar = wx.MenuBar() menubar.Append(menu, "&File") self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.OnNewWindow, id = 5000) self.Bind(wx.EVT_MENU, self.OnExit, id = 5001) def OnExit(self, evt): self.Close(True) def OnNewWindow(self, evt): win = wx.MDIChildFrame(self, -1, "Child Window") win.Show(True) app = wx.App() frame = MDIFrame() frame.Show() app.MainLoop()