wxAui Frame Management用法:
1. 总体步骤# 安装wxpython2.8.*.*后import wx.aui# 初始化一个wxAui管理框架对象mgr = wx.aui.AuiManager()# 通知self作为管理所有子对象的父对象# self可以是wxWindow任何子对象mgr.SetManagedWindow(self)# 将控件放入所指定的位置(具体参考“2. 布局步骤”)mgr.AddPane(wxWindow* window, const wxAuiPaneInfo& pane_info)# "commit" all changes made to FrameManager mgr.Update()2. 布局步骤调用wxAuiPaneInfo()里提供的方法,如:pane1 = wx.Panel(self)mgr.AddPane(pane1, wx.aui.AuiPaneInfo(). Name("test1").Caption("pane1"). CloseButton(True).MaximizeButton(True))其中以下4步顺序操作最为关键:(1)Direction:先确定Center的对象, 这样就能决定哪个控件是四周拉伸, 再确定Left, Right, Top, Bottom(2)Layer:相同Layer的控件可以看作一个整体,类似BoxSizer,从靠近Center的对象从中间向四周开始计算(Center本身不计算),最里面的为Layer(0)可缺省)。数字代表占用的行数和列数来完成布局,Center不计算吧,哈哈
(3)Position:在同一个Direction和Layer里控件放置的次序,默认情
是水平方向按水平排列,竖直方向按竖直排列
(4)Row:在同一个Direction和Layer,改变默认的放置方式
3. 函数细节(1)MinSize() 只作用于一个方向上第一个的控件(2)Fixed() 一个Panel后,mgr.Update()不会响应OnSize()事件,即不会调用Layout()方法, 因此要在Panel中显示调用Layout()(3)SetDockSizeConstraint(double widthpct, double heightpc) 调整Dock位于两个Window之间的比例 wxAuiManager by default limits the size of any new dock to 1/3 of the window size