wx.aui.AuiManager部分/布局翻译
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部分/布局翻译的更多相关文章
- aui
#encoding:utf-8import wximport wx.auiclass MyFrame(wx.Frame): def __init__(self, *args, **kwargs): w ...
- wxAui Frame Management用法
wxAui Frame Management用法:1. 总体步骤# 安装wxpython2.8.*.*后import wx.aui# 初始化一个wxAui管理框架对象mgr = wx.aui.AuiM ...
- 【转载】Python与ArcGIS Engine的集成
本文转载自Fransico<Python与ArcGIS Engine的集成> 1 在Python中调用AO类库 1.1 准备工作 本文所使用环境:ArcGIS 10.0.Python ...
- wxpyhon 鼠标事件例子
#encoding:utf-8 import wx import wx.aui class MyFrame(wx.Frame): def __init__(self, *args, **kwargs) ...
- wx
wx The classes in this module are the most commonly used classes for wxPython, which is why they hav ...
- wx.Frame
wx.Frame A frame is a window whose size and position can (usually) be changed by the user. It usuall ...
- wx.BookCtrlBase
wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...
- 关于AUI框架自学心得
2018年8月25日今天星期六,这段时间接触到移动端布局框架AUI,借着早上一个小时时间大致看了一下开发文档(后面统称文档),对AUI一点认识. 目前2.0版本为最新版,这个版本和1.0比较升级很多. ...
- python_GUI
1. 需要安装wxPython软件 2. GUI(图形用户界面)代码的编写顺序 备注: 1. 加入面板和布局管理器,可以使得组件的位置和大小更加灵活 3. 示例: #encoding=utf-8 i ...
随机推荐
- EF批量操作数据与缓存扩展框架
前言 在原生的EF框架中,针对批量数据操作的接口有限,EF扩展框架弥补了EF在批量操作时的接口,这些批量操作包括:批量修改.批量查询.批量删除和数据缓存,如果您想在EF中更方便的批量操作数据,这个扩展 ...
- VS2017 IIS 部署.net core web项目
1.点击IIS,查看模块 查看是否安装了 AspNetCoreModule 模块,如果没有安装可下载:https://dotnet.microsoft.com/download 下载安装后,即可部署项 ...
- 方格填数-2015决赛C语言A组第一题
在2行5列的格子中填入1到10的数字. 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的. 如[图1.png]所示的2种,就是合格的填法.请你计算一共有多少种可能的方案.请提交该整数,不要 ...
- VM虚拟机克隆_修改网络
1.如果网络中没有VMware的网卡,记得重置即可 2.如果右上角没有了网络图标,直接 server NetworkManager restart 3.网络配置 1)在/etc/sysconfig/n ...
- zsh: command not found: pip 解决方法
出现zsh: command not found: xxx解决方法: 把 bash shell 中.bash_profile 全部环境变量加入zsh shell里就好 step1: Term执行 op ...
- Bash:字符串操作
参考:http://blog.csdn.net/finewings/article/details/5718133 字符串提取 去掉指定前缀 1. ${varible#pattern} ...
- Stylus基本使用
介绍 在学习一个 Vue.js 项目的过程中,注意到源码中样式的部分并没有用熟悉的 .css 样式文件,而是发现了代码长得和 CSS 相像的 .styl 文件.这个 .styl 以前没见过啊,你是谁? ...
- BZOJ3165: [Heoi2013]Segment(李超线段树)
题意 题目链接 Sol 李超线段树板子题.具体原理就不讲了. 一开始自己yy着写差点写自闭都快把叉积搬出来了... 后来看了下litble的写法才发现原来可以写的这么清晰简洁Orz #include& ...
- requireJS基本概念及使用流程(2)
上一篇我们一起研究了研究requireJS,这一篇我们来说一说requireJS具体的使用过程 其实很简单的,我总结了总结就是分为四步走 第一步:在页面中引入requireJS并且引入入口文件 第二步 ...
- Android 投射工具和录屏工具
前言 写博客,难免需要上传手机截图或者是Gif文件,分享两个常用的工具 GifCam GifCam,一个简单的 屏幕录制工具,可以实现Gif的录制编辑和保存 Total Control Total C ...