wx.aui.AuiManager

wx.aui.AuiManager 是AUI框架类中的主要类

wx.aui.AuiManager管理于指定的wx.Frame相关联的窗口,通过使用窗口的wx.aui.AuiPaneInfo信息决定每个窗口停靠和浮动的行为。

在每一个frame中,wx.aui.AuiManager 使用wxWidgets的sizer机制来决定布局。它使用一个可替换的dock art类来完成绘制,因此在一个区域中的所有绘制都是本地化的,并且可以根据应用程序的特定需求进行定制。

wx.aui.AuiManager的工作方式如下:程序员将panes(窗格)添加入类中,或者更改了已存在的pane属性(停靠位置,浮动状态,显示状态等等)。为了应用这些更改,需要调用wx.aui.AuiManager的Update方法。每次修改多个窗格,然后通过调用Update一次性提交所有更改,这种批处理可以用来避免闪烁。

可以这样很容易的添加Panes:

text1 = wx.TextCtrl(self)
text2 = wx.TextCtrl(self)
self.mgr.AddPane(text1, wx.LEFT, "Pane Caption")
self.mgr.AddPane(text2, wx.BOTTOM, "Pane Caption")
self.mgr.Update()

稍后也可以很容易的修改位置,下面的语句将在工作窗口中浮动一个现有pane(窗格)

self.mgr.GetPane(text1).Float()

Layers, Rows and Directions, Positions

在Aui内部,通过检查一些pane的参数来确定dock的布局,其中4个对于确定pane的最终位置非常重要:

  • Direction:每一个docked pane(停靠面板)都有一个direction(方向),Top,Bottom,Left,Right,or Center。这是一目了然的。pane(面板)将被放置在该变量指定的位置。
  • Position:可以将一个以上的pane放置在dock内部。想象一下两个面板(panes)停靠在窗口的左边。一个窗格可以放置在另一个窗格之上。在按比例管理的dock中,pane的position表示它的顺序位置,从零开始。所以,在我们设想的停靠在左边的含有两个panes的dock中,上层的pane的position为0,第二个的position为1。
  • Row:一个row(行)可以放置两个相邻的dock。最常见的情况之一是在工具栏中。多个工具栏是允许的,第一个row为0,第二个为1。Rows也可以在垂直的docked panes(停靠窗口)中使用。
  • Layer(层):一个layer类似于一个洋葱。Layer 0 是managed pane(管理面板)的中心。因此,如果一个pane位于layer 0中,它将是离中心窗口最近的(有时候也被称为“内容窗口”)。增加的layers(层)会“吞噬”所有低一级的层。这看起来很像(multiple rows)多层,但却是不同的因为所有的底层中的所有panes都是包含于高层中的。理解层的最好方式就是运行AUI实例。
  
  

wx.aui.AuiManager部分/布局翻译的更多相关文章

  1. aui

    #encoding:utf-8import wximport wx.auiclass MyFrame(wx.Frame): def __init__(self, *args, **kwargs): w ...

  2. wxAui Frame Management用法

    wxAui Frame Management用法:1. 总体步骤# 安装wxpython2.8.*.*后import wx.aui# 初始化一个wxAui管理框架对象mgr = wx.aui.AuiM ...

  3. 【转载】Python与ArcGIS Engine的集成

    本文转载自Fransico<Python与ArcGIS Engine的集成>   1 在Python中调用AO类库 1.1  准备工作 本文所使用环境:ArcGIS 10.0.Python ...

  4. wxpyhon 鼠标事件例子

    #encoding:utf-8 import wx import wx.aui class MyFrame(wx.Frame): def __init__(self, *args, **kwargs) ...

  5. wx

    wx The classes in this module are the most commonly used classes for wxPython, which is why they hav ...

  6. wx.Frame

    wx.Frame A frame is a window whose size and position can (usually) be changed by the user. It usuall ...

  7. wx.BookCtrlBase

    wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...

  8. 关于AUI框架自学心得

    2018年8月25日今天星期六,这段时间接触到移动端布局框架AUI,借着早上一个小时时间大致看了一下开发文档(后面统称文档),对AUI一点认识. 目前2.0版本为最新版,这个版本和1.0比较升级很多. ...

  9. python_GUI

    1. 需要安装wxPython软件 2.  GUI(图形用户界面)代码的编写顺序 备注: 1. 加入面板和布局管理器,可以使得组件的位置和大小更加灵活 3. 示例: #encoding=utf-8 i ...

随机推荐

  1. EF批量操作数据与缓存扩展框架

    前言 在原生的EF框架中,针对批量数据操作的接口有限,EF扩展框架弥补了EF在批量操作时的接口,这些批量操作包括:批量修改.批量查询.批量删除和数据缓存,如果您想在EF中更方便的批量操作数据,这个扩展 ...

  2. VS2017 IIS 部署.net core web项目

    1.点击IIS,查看模块 查看是否安装了 AspNetCoreModule 模块,如果没有安装可下载:https://dotnet.microsoft.com/download 下载安装后,即可部署项 ...

  3. 方格填数-2015决赛C语言A组第一题

    在2行5列的格子中填入1到10的数字. 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的. 如[图1.png]所示的2种,就是合格的填法.请你计算一共有多少种可能的方案.请提交该整数,不要 ...

  4. VM虚拟机克隆_修改网络

    1.如果网络中没有VMware的网卡,记得重置即可 2.如果右上角没有了网络图标,直接 server NetworkManager restart 3.网络配置 1)在/etc/sysconfig/n ...

  5. zsh: command not found: pip 解决方法

    出现zsh: command not found: xxx解决方法: 把 bash shell 中.bash_profile 全部环境变量加入zsh shell里就好 step1: Term执行 op ...

  6. Bash:字符串操作

    参考:http://blog.csdn.net/finewings/article/details/5718133 字符串提取 去掉指定前缀 1. ${varible#pattern}         ...

  7. Stylus基本使用

    介绍 在学习一个 Vue.js 项目的过程中,注意到源码中样式的部分并没有用熟悉的 .css 样式文件,而是发现了代码长得和 CSS 相像的 .styl 文件.这个 .styl 以前没见过啊,你是谁? ...

  8. BZOJ3165: [Heoi2013]Segment(李超线段树)

    题意 题目链接 Sol 李超线段树板子题.具体原理就不讲了. 一开始自己yy着写差点写自闭都快把叉积搬出来了... 后来看了下litble的写法才发现原来可以写的这么清晰简洁Orz #include& ...

  9. requireJS基本概念及使用流程(2)

    上一篇我们一起研究了研究requireJS,这一篇我们来说一说requireJS具体的使用过程 其实很简单的,我总结了总结就是分为四步走 第一步:在页面中引入requireJS并且引入入口文件 第二步 ...

  10. Android 投射工具和录屏工具

    前言 写博客,难免需要上传手机截图或者是Gif文件,分享两个常用的工具 GifCam GifCam,一个简单的 屏幕录制工具,可以实现Gif的录制编辑和保存 Total Control Total C ...