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()
讓前面的設置起作用
總結
以上是生活随笔為你收集整理的xwpython aui 子窗口-wxpython中的wxaui窗口管理器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国科微行业地位 优秀的半导体企业
- 下一篇: 京东白条可以分期还吗