📄 aui_dockingwindowmgr.py
字号:
dlg.SetValue(("Perspective %d")%(len(self._perspectives)+1))
if dlg.ShowModal() != wx.ID_OK:
return
if len(self._perspectives) == 0:
self._perspectives_menu.AppendSeparator()
self._perspectives_menu.Append(ID_FirstPerspective + len(self._perspectives), dlg.GetValue())
self._perspectives.append(self._mgr.SavePerspective())
def OnCopyPerspective(self, event):
s = self._mgr.SavePerspective()
if wx.TheClipboard.Open():
wx.TheClipboard.SetData(wx.TextDataObject(s))
wx.TheClipboard.Close()
def OnRestorePerspective(self, event):
self._mgr.LoadPerspective(self._perspectives[event.GetId() - ID_FirstPerspective])
def GetStartPosition(self):
self.x = self.x + 20
x = self.x
pt = self.ClientToScreen(wx.Point(0, 0))
return wx.Point(pt.x + x, pt.y + x)
def OnCreateTree(self, event):
self._mgr.AddPane(self.CreateTreeCtrl(), wx.aui.AuiPaneInfo().
Caption("Tree Control").
Float().FloatingPosition(self.GetStartPosition()).
FloatingSize(wx.Size(150, 300)).CloseButton(True).MaximizeButton(True))
self._mgr.Update()
def OnCreateGrid(self, event):
self._mgr.AddPane(self.CreateGrid(), wx.aui.AuiPaneInfo().
Caption("Grid").
Float().FloatingPosition(self.GetStartPosition()).
FloatingSize(wx.Size(300, 200)).CloseButton(True).MaximizeButton(True))
self._mgr.Update()
def OnCreateHTML(self, event):
self._mgr.AddPane(self.CreateHTMLCtrl(), wx.aui.AuiPaneInfo().
Caption("HTML Content").
Float().FloatingPosition(self.GetStartPosition()).
FloatingSize(wx.Size(300, 200)).CloseButton(True).MaximizeButton(True))
self._mgr.Update()
def OnCreateText(self, event):
self._mgr.AddPane(self.CreateTextCtrl(), wx.aui.AuiPaneInfo().
Caption("Text Control").
Float().FloatingPosition(self.GetStartPosition()).
CloseButton(True).MaximizeButton(True))
self._mgr.Update()
def OnCreateSizeReport(self, event):
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Caption("Client Size Reporter").
Float().FloatingPosition(self.GetStartPosition()).
CloseButton(True).MaximizeButton(True))
self._mgr.Update()
def OnChangeContentPane(self, event):
self._mgr.GetPane("grid_content").Show(event.GetId() == ID_GridContent)
self._mgr.GetPane("text_content").Show(event.GetId() == ID_TextContent)
self._mgr.GetPane("tree_content").Show(event.GetId() == ID_TreeContent)
self._mgr.GetPane("sizereport_content").Show(event.GetId() == ID_SizeReportContent)
self._mgr.GetPane("html_content").Show(event.GetId() == ID_HTMLContent)
self._mgr.Update()
def CreateTextCtrl(self):
text = ("This is text box %d")%(self.n + 1)
return wx.TextCtrl(self,-1, text, wx.Point(0, 0), wx.Size(150, 90),
wx.NO_BORDER | wx.TE_MULTILINE)
def CreateGrid(self):
grid = wx.grid.Grid(self, -1, wx.Point(0, 0), wx.Size(150, 250),
wx.NO_BORDER | wx.WANTS_CHARS)
grid.CreateGrid(50, 20)
return grid
def CreateTreeCtrl(self):
tree = wx.TreeCtrl(self, -1, wx.Point(0, 0), wx.Size(160, 250),
wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
root = tree.AddRoot("AUI Project")
items = []
imglist = wx.ImageList(16, 16, True, 2)
imglist.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, wx.Size(16,16)))
imglist.Add(wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, wx.Size(16,16)))
tree.AssignImageList(imglist)
items.append(tree.AppendItem(root, "Item 1", 0))
items.append(tree.AppendItem(root, "Item 2", 0))
items.append(tree.AppendItem(root, "Item 3", 0))
items.append(tree.AppendItem(root, "Item 4", 0))
items.append(tree.AppendItem(root, "Item 5", 0))
for ii in xrange(len(items)):
id = items[ii]
tree.AppendItem(id, "Subitem 1", 1)
tree.AppendItem(id, "Subitem 2", 1)
tree.AppendItem(id, "Subitem 3", 1)
tree.AppendItem(id, "Subitem 4", 1)
tree.AppendItem(id, "Subitem 5", 1)
tree.Expand(root)
return tree
def CreateSizeReportCtrl(self, width=80, height=80):
ctrl = SizeReportCtrl(self, -1, wx.DefaultPosition,
wx.Size(width, height), self._mgr)
return ctrl
def CreateHTMLCtrl(self):
ctrl = wx.html.HtmlWindow(self, -1, wx.DefaultPosition, wx.Size(400, 300))
if "gtk2" in wx.PlatformInfo:
ctrl.SetStandardFonts()
ctrl.SetPage(self.GetIntroText())
return ctrl
def GetIntroText(self):
return overview
# -- wx.SizeReportCtrl --
# (a utility control that always reports it's client size)
class SizeReportCtrl(wx.PyControl):
def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition,
size=wx.DefaultSize, mgr=None):
wx.PyControl.__init__(self, parent, id, pos, size, wx.NO_BORDER)
self._mgr = mgr
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
def OnPaint(self, event):
dc = wx.PaintDC(self)
size = self.GetClientSize()
s = ("Size: %d x %d")%(size.x, size.y)
dc.SetFont(wx.NORMAL_FONT)
w, height = dc.GetTextExtent(s)
height = height + 3
dc.SetBrush(wx.WHITE_BRUSH)
dc.SetPen(wx.WHITE_PEN)
dc.DrawRectangle(0, 0, size.x, size.y)
dc.SetPen(wx.LIGHT_GREY_PEN)
dc.DrawLine(0, 0, size.x, size.y)
dc.DrawLine(0, size.y, size.x, 0)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2))
if self._mgr:
pi = self._mgr.GetPane(self)
s = ("Layer: %d")%pi.dock_layer
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*1))
s = ("Dock: %d Row: %d")%(pi.dock_direction, pi.dock_row)
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*2))
s = ("Position: %d")%pi.dock_pos
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*3))
s = ("Proportion: %d")%pi.dock_proportion
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*4))
def OnEraseBackground(self, event):
# intentionally empty
pass
def OnSize(self, event):
self.Refresh()
event.Skip()
ID_PaneBorderSize = wx.ID_HIGHEST + 1
ID_SashSize = ID_PaneBorderSize + 1
ID_CaptionSize = ID_PaneBorderSize + 2
ID_BackgroundColor = ID_PaneBorderSize + 3
ID_SashColor = ID_PaneBorderSize + 4
ID_InactiveCaptionColor = ID_PaneBorderSize + 5
ID_InactiveCaptionGradientColor = ID_PaneBorderSize + 6
ID_InactiveCaptionTextColor = ID_PaneBorderSize + 7
ID_ActiveCaptionColor = ID_PaneBorderSize + 8
ID_ActiveCaptionGradientColor = ID_PaneBorderSize + 9
ID_ActiveCaptionTextColor = ID_PaneBorderSize + 10
ID_BorderColor = ID_PaneBorderSize + 11
ID_GripperColor = ID_PaneBorderSize + 12
class SettingsPanel(wx.Panel):
def __init__(self, parent, frame):
wx.Panel.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition,
wx.DefaultSize)
self._frame = frame
vert = wx.BoxSizer(wx.VERTICAL)
s1 = wx.BoxSizer(wx.HORIZONTAL)
self._border_size = wx.SpinCtrl(self, ID_PaneBorderSize, "", wx.DefaultPosition, wx.Size(50,20))
s1.Add((1, 1), 1, wx.EXPAND)
s1.Add(wx.StaticText(self, -1, "Pane Border Size:"))
s1.Add(self._border_size)
s1.Add((1, 1), 1, wx.EXPAND)
s1.SetItemMinSize(1, (180, 20))
#vert.Add(s1, 0, wx.EXPAND | wxLEFT | wxBOTTOM, 5)
s2 = wx.BoxSizer(wx.HORIZONTAL)
self._sash_size = wx.SpinCtrl(self, ID_SashSize, "", wx.DefaultPosition, wx.Size(50,20))
s2.Add((1, 1), 1, wx.EXPAND)
s2.Add(wx.StaticText(self, -1, "Sash Size:"))
s2.Add(self._sash_size)
s2.Add((1, 1), 1, wx.EXPAND)
s2.SetItemMinSize(1, (180, 20))
#vert.Add(s2, 0, wx.EXPAND | wxLEFT | wxBOTTOM, 5)
s3 = wx.BoxSizer(wx.HORIZONTAL)
self._caption_size = wx.SpinCtrl(self, ID_CaptionSize, "", wx.DefaultPosition, wx.Size(50,20))
s3.Add((1, 1), 1, wx.EXPAND)
s3.Add(wx.StaticText(self, -1, "Caption Size:"))
s3.Add(self._caption_size)
s3.Add((1, 1), 1, wx.EXPAND)
s3.SetItemMinSize(1, (180, 20))
#vert.Add(s3, 0, wx.EXPAND | wxLEFT | wxBOTTOM, 5)
#vert.Add(1, 1, 1, wx.EXPAND)
b = self.CreateColorBitmap(wx.BLACK)
s4 = wx.BoxSizer(wx.HORIZONTAL)
self._background_color = wx.BitmapButton(self, ID_BackgroundColor, b, wx.DefaultPosition, wx.Size(50,25))
s4.Add((1, 1), 1, wx.EXPAND)
s4.Add(wx.StaticText(self, -1, "Background Color:"))
s4.Add(self._background_color)
s4.Add((1, 1), 1, wx.EXPAND)
s4.SetItemMinSize(1, (180, 20))
s5 = wx.BoxSizer(wx.HORIZONTAL)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -