📄 aui_dockingwindowmgr.py
字号:
self._mgr.AddPane(tb1, wx.aui.AuiPaneInfo().
Name("tb1").Caption("Big Toolbar").
ToolbarPane().Top().
LeftDockable(False).RightDockable(False))
self._mgr.AddPane(tb2, wx.aui.AuiPaneInfo().
Name("tb2").Caption("Toolbar 2").
ToolbarPane().Top().Row(1).
LeftDockable(False).RightDockable(False))
self._mgr.AddPane(tb3, wx.aui.AuiPaneInfo().
Name("tb3").Caption("Toolbar 3").
ToolbarPane().Top().Row(1).Position(1).
LeftDockable(False).RightDockable(False))
self._mgr.AddPane(tb4, wx.aui.AuiPaneInfo().
Name("tb4").Caption("Sample Bookmark Toolbar").
ToolbarPane().Top().Row(2).
LeftDockable(False).RightDockable(False))
self._mgr.AddPane(tb5, wx.aui.AuiPaneInfo().
Name("tbvert").Caption("Sample Vertical Toolbar").
ToolbarPane().Left().GripperTop().
TopDockable(False).BottomDockable(False))
self._mgr.AddPane(wx.Button(self, -1, "Test Button"),
wx.aui.AuiPaneInfo().Name("tb5").
ToolbarPane().Top().Row(2).Position(1).
LeftDockable(False).RightDockable(False))
# make some default perspectives
self._mgr.GetPane("tbvert").Hide()
perspective_all = self._mgr.SavePerspective()
all_panes = self._mgr.GetAllPanes()
for ii in xrange(len(all_panes)):
if not all_panes[ii].IsToolbar():
all_panes[ii].Hide()
self._mgr.GetPane("tb1").Hide()
self._mgr.GetPane("tb5").Hide()
self._mgr.GetPane("test8").Show().Left().Layer(0).Row(0).Position(0)
self._mgr.GetPane("test10").Show().Bottom().Layer(0).Row(0).Position(0)
self._mgr.GetPane("html_content").Show()
perspective_default = self._mgr.SavePerspective()
for ii in xrange(len(all_panes)):
if not all_panes[ii].IsToolbar():
all_panes[ii].Hide()
self._mgr.GetPane("tb1").Hide()
self._mgr.GetPane("tb5").Hide()
self._mgr.GetPane("tbvert").Show()
self._mgr.GetPane("grid_content").Show()
self._mgr.GetPane("test8").Show().Left().Layer(0).Row(0).Position(0)
self._mgr.GetPane("test10").Show().Bottom().Layer(0).Row(0).Position(0)
self._mgr.GetPane("html_content").Show()
perspective_vert = self._mgr.SavePerspective()
self._perspectives.append(perspective_default)
self._perspectives.append(perspective_all)
self._perspectives.append(perspective_vert)
self._mgr.GetPane("tbvert").Hide()
self._mgr.GetPane("grid_content").Hide()
# "commit" all changes made to FrameManager
self._mgr.Update()
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_CLOSE, self.OnClose)
# Show How To Use The Closing Panes Event
self.Bind(wx.aui.EVT_AUI_PANE_CLOSE, self.OnPaneClose)
self.Bind(wx.EVT_MENU, self.OnCreateTree, id=ID_CreateTree)
self.Bind(wx.EVT_MENU, self.OnCreateGrid, id=ID_CreateGrid)
self.Bind(wx.EVT_MENU, self.OnCreateText, id=ID_CreateText)
self.Bind(wx.EVT_MENU, self.OnCreateHTML, id=ID_CreateHTML)
self.Bind(wx.EVT_MENU, self.OnCreateSizeReport, id=ID_CreateSizeReport)
self.Bind(wx.EVT_MENU, self.OnCreatePerspective, id=ID_CreatePerspective)
self.Bind(wx.EVT_MENU, self.OnCopyPerspective, id=ID_CopyPerspective)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AllowFloating)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_TransparentHint)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_VenetianBlindsHint)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_RectangleHint)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NoHint)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_HintFade)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NoVenetianFade)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_TransparentDrag)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AllowActivePane)
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_NoGradient)
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_VerticalGradient)
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_HorizontalGradient)
self.Bind(wx.EVT_MENU, self.OnSettings, id=ID_Settings)
self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_GridContent)
self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_TreeContent)
self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_TextContent)
self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_SizeReportContent)
self.Bind(wx.EVT_MENU, self.OnChangeContentPane, id=ID_HTMLContent)
self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
self.Bind(wx.EVT_MENU, self.OnAbout, id=ID_About)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_TransparentHint)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VenetianBlindsHint)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_RectangleHint)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoHint)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_HintFade)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_AllowFloating)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoVenetianFade)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_TransparentDrag)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_AllowActivePane)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_NoGradient)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VerticalGradient)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_HorizontalGradient)
self.Bind(wx.EVT_MENU_RANGE, self.OnRestorePerspective, id=ID_FirstPerspective,
id2=ID_FirstPerspective+1000)
def OnPaneClose(self, event):
caption = event.GetPane().caption
if caption in ["Tree Pane", "Dock Manager Settings", "Fixed Pane"]:
msg = "Are You Sure You Want To Close This Pane?"
dlg = wx.MessageDialog(self, msg, "AUI Question",
wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
event.Veto()
dlg.Destroy()
def OnClose(self, event):
self._mgr.UnInit()
del self._mgr
self.Destroy()
def OnExit(self, event):
self.Close()
def OnAbout(self, event):
msg = "wx.aui Demo\n" + \
"An advanced window management library for wxWidgets\n" + \
"(c) Copyright 2005-2006, Kirix Corporation"
dlg = wx.MessageDialog(self, msg, "About wx.aui Demo",
wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
def GetDockArt(self):
return self._mgr.GetArtProvider()
def DoUpdate(self):
self._mgr.Update()
def OnEraseBackground(self, event):
event.Skip()
def OnSize(self, event):
event.Skip()
def OnSettings(self, event):
# show the settings pane, and float it
floating_pane = self._mgr.GetPane("settings").Float().Show()
if floating_pane.floating_pos == wx.DefaultPosition:
floating_pane.FloatingPosition(self.GetStartPosition())
self._mgr.Update()
def OnGradient(self, event):
gradient = 0
if event.GetId() == ID_NoGradient:
gradient = wx.aui.AUI_GRADIENT_NONE
elif event.GetId() == ID_VerticalGradient:
gradient = wx.aui.AUI_GRADIENT_VERTICAL
elif event.GetId() == ID_HorizontalGradient:
gradient = wx.aui.AUI_GRADIENT_HORIZONTAL
self._mgr.GetArtProvider().SetMetric(wx.aui.AUI_DOCKART_GRADIENT_TYPE, gradient)
self._mgr.Update()
def OnManagerFlag(self, event):
flag = 0
eid = event.GetId()
if eid in [ ID_TransparentHint, ID_VenetianBlindsHint, ID_RectangleHint, ID_NoHint ]:
flags = self._mgr.GetFlags()
flags &= ~wx.aui.AUI_MGR_TRANSPARENT_HINT
flags &= ~wx.aui.AUI_MGR_VENETIAN_BLINDS_HINT
flags &= ~wx.aui.AUI_MGR_RECTANGLE_HINT
self._mgr.SetFlags(flags)
if eid == ID_AllowFloating:
flag = wx.aui.AUI_MGR_ALLOW_FLOATING
elif eid == ID_TransparentDrag:
flag = wx.aui.AUI_MGR_TRANSPARENT_DRAG
elif eid == ID_HintFade:
flag = wx.aui.AUI_MGR_HINT_FADE
elif eid == ID_NoVenetianFade:
flag = wx.aui.AUI_MGR_NO_VENETIAN_BLINDS_FADE
elif eid == ID_AllowActivePane:
flag = wx.aui.AUI_MGR_ALLOW_ACTIVE_PANE
elif eid == ID_TransparentHint:
flag = wx.aui.AUI_MGR_TRANSPARENT_HINT
elif eid == ID_VenetianBlindsHint:
flag = wx.aui.AUI_MGR_VENETIAN_BLINDS_HINT
elif eid == ID_RectangleHint:
flag = wx.aui.AUI_MGR_RECTANGLE_HINT
self._mgr.SetFlags(self._mgr.GetFlags() ^ flag)
def OnUpdateUI(self, event):
flags = self._mgr.GetFlags()
eid = event.GetId()
if eid == ID_NoGradient:
event.Check(self._mgr.GetArtProvider().GetMetric(wx.aui.AUI_DOCKART_GRADIENT_TYPE) == wx.aui.AUI_GRADIENT_NONE)
elif eid == ID_VerticalGradient:
event.Check(self._mgr.GetArtProvider().GetMetric(wx.aui.AUI_DOCKART_GRADIENT_TYPE) == wx.aui.AUI_GRADIENT_VERTICAL)
elif eid == ID_HorizontalGradient:
event.Check(self._mgr.GetArtProvider().GetMetric(wx.aui.AUI_DOCKART_GRADIENT_TYPE) == wx.aui.AUI_GRADIENT_HORIZONTAL)
elif eid == ID_AllowFloating:
event.Check((flags & wx.aui.AUI_MGR_ALLOW_FLOATING) != 0)
elif eid == ID_TransparentDrag:
event.Check((flags & wx.aui.AUI_MGR_TRANSPARENT_DRAG) != 0)
elif eid == ID_TransparentHint:
event.Check((flags & wx.aui.AUI_MGR_TRANSPARENT_HINT) != 0)
elif eid == ID_VenetianBlindsHint:
event.Check((flags & wx.aui.AUI_MGR_VENETIAN_BLINDS_HINT) != 0)
elif eid == ID_RectangleHint:
event.Check((flags & wx.aui.AUI_MGR_RECTANGLE_HINT) != 0)
elif eid == ID_NoHint:
event.Check(((wx.aui.AUI_MGR_TRANSPARENT_HINT |
wx.aui.AUI_MGR_VENETIAN_BLINDS_HINT |
wx.aui.AUI_MGR_RECTANGLE_HINT) & flags) == 0)
elif eid == ID_HintFade:
event.Check((flags & wx.aui.AUI_MGR_HINT_FADE) != 0);
elif eid == ID_NoVenetianFade:
event.Check((flags & wx.aui.AUI_MGR_NO_VENETIAN_BLINDS_FADE) != 0);
def OnCreatePerspective(self, event):
dlg = wx.TextEntryDialog(self, "Enter a name for the new perspective:", "AUI Test")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -