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. 基于多层感知机的手写数字识别(Tensorflow实现)

    import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...

  2. Java中异常发生时代码执行流程

    异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员) ...

  3. 并发编程之 线程协作工具 LockSupport

    前言 在前面的文章中,我们介绍了并发工具中的4个,Samephore,CyclicBarrier,CountDownLatch,Exchanger,但是我们漏了一个,非常的好用的工具,楼主在这里必须加 ...

  4. C# List集合基础操作

    这里介绍一下C# list的基础操作: 去重.差集.并集.交集 下面,我们看看例子.我们创建了一个User实体,包含两个list,User实体如果Id相等,则相等. users1是id 1到4的集合, ...

  5. [转]Webpack 入门教程

    本文转自:http://www.runoob.com/w3cnote/webpack-tutorial.html Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后 ...

  6. Spring基础(9) : 自动扫描

    一  配置xml方式:扫描com包下的bean <?xml version="1.0" encoding="UTF-8" ?> <beans ...

  7. MFC框架之线程局部存储

    线程局部存储中用到的API基础:(TLS:Thread Local Storage) 1.在主线程中申请索引 g_index=::TlsAlloc(); 2.在线程函数中使用索引 存值:::TlsSe ...

  8. [日常] Go语言圣经-匿名函数习题2

    练习5.13: 修改crawl,使其能保存发现的页面,必要时,可以创建目录来保存这些页面.只保存来自原始域名下的页面.假设初始页面在golang.org下,就不 要保存vimeo.com下的页面. p ...

  9. 第三十天- 进程 Process模块 空间隔离

    1.进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体: ...

  10. tinyint、smallint、bigint、int 区别

    1byte=8bit   [tinyint] 从 0 到 255 的整型数据.存储大小为 1 字节.如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数. [smallint] ...