xwpython aui 子窗口-wxpython中的wxaui窗口管理器

Aui manger 是个窗口(组件)管理器,可能比直接用 Sizer 方便一些。

wx2.8example 窗口布局为:

左边一个 panel,叫做 leftPanel,里头放了点东西。里头的东西我们暂时不关心;

右上方是一个 Notebook,支持 tab 的。以后具体的 Demo 就显示在那里;

右下方是个 TextCtrl,用来存放 log 信息。

所以:

leftPanel = wx.Panel(self)

self.nb = wx.Notebook(self, -1)

self.log = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE|

wx.TE_READONLY|wx.HSCROLL)

log 应该是 READONLY 的。

下面用 aui manager 来把这三个窗体加入主窗体。

import wx.aui

加载模块

self.mgr = wx.aui.Auimanager()

生成管理器

self.mgr.SetManagedWindow(self)

用 mgr 来管理主窗口,也就是现在的 self.

注意在官方的代码中,并不直接管理主窗体。而是生成了一个 panel 并加到主窗体中,然后管理这个 panel。据称这样做可以避免 Mac 版的一个 Bug.

self.mgr.AddPane(self.nb,

wx.aui.AuiPaneInfo().

CenterPane().

Name("Notebook"))

串接的方式并不新奇,但 AuiPaneInfo() 之后的函数次序是可交换的。我猜测这些函数都返回相同的类型。

CenterPane() 的一个作用是使窗体尽可能地大。此外,使用它之后,关闭窗体的按钮消失了。

self.mgr.AddPane(leftPanel,

wx.aui.AuiPaneInfo().

Left().Layer(2).BaseSize((240,-1)).

MinSize((160, -1)).

Caption("InfoMath Demo").

CloseBotton(False))

函数调用方式与前面的类似。Left() 居左。Layer 选择预设布局方式,可以去掉这一句,对比不同效果。CloseBotton(False) 去掉关闭按钮。

self.mgr.AddPane(self.log ...

与前面类似,这里就不说了。

self.mgr.Update()

让前面的设置起作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值