wxAui用法总结

300 篇文章 0 订阅
128 篇文章 0 订阅

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的对象从中间向四周开始计算,最里面的为Layer(0)可缺省)。

(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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。首先,wxWidgets是一个跨平台的C++应用程序框架,可以用来开发GUI(图形用户界面)应用程序。wxAUI是wxWidgets中的一个工具包,用于管理应用程序中的多个面板、工具栏和菜单等。下面是一些代码示例,帮助你用wxWidgets的wxAUI框架编写一个简单的界面,将窗口分为左中右三部分: ```cpp // 创建wxWidgets应用程序对象 wxAppConsole* app = wxCreateApp(); // 初始化应用程序 wxApp::SetInstance(app); wxEntry(argc, argv); // 创建主窗口 wxFrame* frame = new wxFrame(NULL, wxID_ANY, wxT("My Frame"), wxDefaultPosition, wxSize(500, 300)); // 创建wxAUI管理器 wxAuiManager* manager = new wxAuiManager(frame); // 创建左中右三个面板 wxPanel* panel_left = new wxPanel(frame, wxID_ANY, wxDefaultPosition, wxSize(150, -1)); wxPanel* panel_center = new wxPanel(frame, wxID_ANY, wxDefaultPosition, wxSize(200, -1)); wxPanel* panel_right = new wxPanel(frame, wxID_ANY, wxDefaultPosition, wxSize(150, -1)); // 将左中右三个面板添加到管理器中 manager->AddPane(panel_left, wxLEFT, wxT("Left Pane")); manager->AddPane(panel_center, wxCENTER, wxT("Center Pane")); manager->AddPane(panel_right, wxRIGHT, wxT("Right Pane")); // 设置管理器的布局 manager->Update(); // 显示主窗口 frame->Show(); // 进入消息循环 wxTheApp->OnRun(); // 释放资源 wxApp::CleanUp(); // 返回0表示正常退出 return 0; ``` 以上代码中,我们首先创建了一个wxAppConsole应用程序对象,并初始化应用程序。然后创建了一个名为"My Frame"的主窗口,窗口大小为500x300。接着创建了一个wxAuiManager管理器,并将三个面板添加到管理器中。最后设置管理器的布局,显示主窗口,并进入消息循环,直到应用程序退出。 以上是一个简单的界面实现,窗口分为左中右三部分。你可以根据自己的需要添加更多的面板、工具栏和菜单等,来创建更复杂的界面。希望这能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值