xwpython aui 子窗口-wxpython中的wxaui窗口管理器
Aui manger 是個(gè)窗口(組件)管理器,可能比直接用 Sizer 方便一些。
wx2.8example 窗口布局為:
左邊一個(gè) panel,叫做 leftPanel,里頭放了點(diǎn)東西。里頭的東西我們暫時(shí)不關(guān)心;
右上方是一個(gè) Notebook,支持 tab 的。以后具體的 Demo 就顯示在那里;
右下方是個(gè) 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 應(yīng)該是 READONLY 的。
下面用 aui manager 來把這三個(gè)窗體加入主窗體。
import wx.aui
加載模塊
self.mgr = wx.aui.Auimanager()
生成管理器
self.mgr.SetManagedWindow(self)
用 mgr 來管理主窗口,也就是現(xiàn)在的 self.
注意在官方的代碼中,并不直接管理主窗體。而是生成了一個(gè) panel 并加到主窗體中,然后管理這個(gè) panel。據(jù)稱這樣做可以避免 Mac 版的一個(gè) Bug.
self.mgr.AddPane(self.nb,
wx.aui.AuiPaneInfo().
CenterPane().
Name("Notebook"))
串接的方式并不新奇,但 AuiPaneInfo() 之后的函數(shù)次序是可交換的。我猜測這些函數(shù)都返回相同的類型。
CenterPane() 的一個(gè)作用是使窗體盡可能地大。此外,使用它之后,關(guān)閉窗體的按鈕消失了。
self.mgr.AddPane(leftPanel,
wx.aui.AuiPaneInfo().
Left().Layer(2).BaseSize((240,-1)).
MinSize((160, -1)).
Caption("InfoMath Demo").
CloseBotton(False))
函數(shù)調(diào)用方式與前面的類似。Left() 居左。Layer 選擇預(yù)設(shè)布局方式,可以去掉這一句,對比不同效果。CloseBotton(False) 去掉關(guān)閉按鈕。
self.mgr.AddPane(self.log ...
與前面類似,這里就不說了。
self.mgr.Update()
讓前面的設(shè)置起作用
總結(jié)
以上是生活随笔為你收集整理的xwpython aui 子窗口-wxpython中的wxaui窗口管理器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国科微行业地位 优秀的半导体企业
- 下一篇: vs代码补全的快捷键_一款Python编