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

wxAui Frame Management用法的更多相关文章

  1. frame的用法

    <iframe> 标签规定一个内联框架.一个内联框架被用来在当前 HTML 文档中嵌入另一个文档. 所有的主流浏览器都支持<iframe>标签.你可以把提示的文字放到 < ...

  2. NYTimes Objective-C 编程风格指南

    转自eseedo的博客   [微博] NYTimes Objective-C 编程风格指南.来源:https://github.com/NYTimes/objective-c-style-guide ...

  3. 从零开始系列-R语言基础学习笔记之二 数据结构(二)

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  4. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

  5. Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras 论文摘要

    1. Abstract 通过一种Unified Omnidirectional Model作为投影方程. 这种方式可以使用图像的所有内容包括有强畸变的区域,而现存的视觉里程计方案只能修正或者切掉来使用 ...

  6. Html标记语言学习一2017年6月12日

    今天主要学习了 frame的用法. <frameset> 可以将网页分成几个不同的部分 使用 cols  和  rows 两种标记.前者是列,后者是行 <frame/>  单标 ...

  7. python3+selenium常用语法汇总

    Selenium常用语法总结 一.Selenium常用定位语法 1.元素定位 (1)ID定位元素: find_element_by_id(‘’) (2)通过元素的类名称定位元素: find_eleme ...

  8. Linux内存管理(深入理解Linux内核)

    Linux的内存管理,实际上是借助80x86的硬件分段和分页电路,将逻辑地址转化为物理地址的. 物理内存中,有一部分是一直(Permanently)映射给内核使用的,这部分主要用于保存内核的代码,以及 ...

  9. iMacros 入门教程-基础函数介绍(2)

    imacros 的 pos 参数是什么意思 position的缩写,如果有 2 个以上的元素共用完全相同的属性(比方说同一个小区的同一栋楼),这个 POS 的参数可以借由不同位置来帮助明确定位(也就是 ...

随机推荐

  1. Dollar Dayz(大数母函数,高低位存取)

    Dollar Dayz Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5655   Accepted: 2125 Descr ...

  2. Adding Pagination 添加分页

    本文来自: http://www.bbsmvc.com/MVC3Framework/thread-206-1-1.html You can see from Figure 7-16 that all ...

  3. MYSQL报Fatal error encountered during command execution.错误的解决方法

    {MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command executio ...

  4. jvm强制类型转换

    public class Integer_Object { public static void main(String[] args){ Object obj = new ooo(); // Int ...

  5. blog开篇

    本来是写java学习开篇的,现在就把它改为博客开篇吧. 其实一直都想着记录一下自己学习的过程,或者说是借口,一直在忙,也从重庆辗转到广州,又从广州辗转到天津了,又一个新阶段开始了,猴年马月都到了,哈哈 ...

  6. sublime text帮你更好的写python

    在Google的Python风格指南中,有这样的要求: 用4个空格来缩进代码 但是每次在敲代码的时候,用一个tab确实比敲四次空格方便的多.令人欣慰的是sublime text 2能够把tab转换成4 ...

  7. a 标签的四个伪类

    link        有链接属性时visited    链接地址已被访问过active     被用户激活(在鼠标点击与释放之间发生的事件)hover      其鼠标悬停 <!DOCTYPE ...

  8. 【转】基于RSA算法实现软件注册码原理初讨

    1 前言 目前,商用软件和共享软件绝大部份都是采用注册码授权的方式来保证软件本身不被盗用,以保证自身的利益.尽管很多常用的许多软件系统的某些版本已经被别人破解,但对于软件特殊行业而言,注册码授权的方式 ...

  9. Google机器学习教程心得(二)决策树与可视化

    Visualizing a Decision Tree Google Machine Learning Recipes 2 官方中文博客 http://chinagdg.org/2016/03/mac ...

  10. FastJSON应用前测试

    FastJSON 应用前测试 FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能.\ 实际 ...