分隔視窗(wx.splitterwindow)就是將視窗分成兩部分,即左右或上下兩部分,兩個視窗之間的分隔線是可以拖動的,稱為「窗框」(sash)。
splitterwindow中一般常用的方法有兩種:水平分割跟垂直分割
splitvertically(leftwindow, rightwindow, sashposition=0)。設定左右布局的分隔視窗,leftwindow為左視窗,rightwindow為右視窗,sashposition是視窗的位置,可以是0,也可以自定義。
splithorizontally(leftwindow, rightwindow, sashposition=0)。設定上下布局的分隔視窗,leftwindow為上視窗,rightwindow為下視窗,sashposition是視窗的位置,可以是0,也可以自定義。
效果圖如下:
大概的思路就是想分割上下兩個部分,然後以上部分的視窗作為主體視窗在進行二次分割
# 建立乙個分割窗,parent是frame
self.sp = wx.splitterwindow(self)
# 建立上子面板
self.panel_top = wx.panel(self.sp, style=wx.sunken_border)
# 建立上子面板
self.panel_bottom = wx.panel(self.sp, style=wx.sunken_border)
# 建立乙個子分割窗,parent是panel_top
self.top = wx.splitterwindow(self.panel_top)
# 建立乙個垂直布局
self.box = wx.boxsizer(wx.vertical)
# 將子分割窗布局延伸至整個空間
self.box.add(self.top,
1, wx.expand)
self.panel_top.setsizer(self.box)
# 在子分割窗的基礎上建立子畫板
self.panel_top_left = wx.panel(self.top, style=wx.sunken_border)
# 在子分割窗的基礎上建立子畫板
self.panel_top_right = wx.panel(self.top, style=wx.sunken_border)
# 分割窗體
self.sp.splithorizontally(self.panel_top, self.panel_bottom,
450)
self.top.splitvertically(self.panel_top_left, self.panel_top_right,
500)
補充一點小知識:
# 視窗居中顯示
self.center(
)# 呼叫視窗展示功能
self.show(
true
)
全部**
tool_title = u'遊戲打渠道包工具'
# 顯示主頁面
class
guimainframe
(wx.frame)
:def
__init__
(self, parent, title)
: wx.frame.__init__(self, parent, title=title, size=
(1080
,786))
# 窗體分割
self.splitwindow(
)# 視窗居中顯示
self.center(
)# 呼叫視窗展示功能
self.show(
true
)def
splitwindow
(self)
:# 建立乙個分割窗,parent是frame
self.sp = wx.splitterwindow(self)
# 建立上子面板
self.panel_top = wx.panel(self.sp, style=wx.sunken_border)
# 建立上子面板
self.panel_bottom = wx.panel(self.sp, style=wx.sunken_border)
# 建立乙個子分割窗,parent是panel_top
self.top = wx.splitterwindow(self.panel_top)
# 建立乙個垂直布局
self.box = wx.boxsizer(wx.vertical)
# 將子分割窗布局延伸至整個空間
self.box.add(self.top,
1, wx.expand)
self.panel_top.setsizer(self.box)
# 在子分割窗的基礎上建立子畫板
self.panel_top_left = wx.panel(self.top, style=wx.sunken_border)
# 在子分割窗的基礎上建立子畫板
self.panel_top_right = wx.panel(self.top, style=wx.sunken_border)
# 分割窗體
self.sp.splithorizontally(self.panel_top, self.panel_bottom,
450)
self.top.splitvertically(self.panel_top_left, self.panel_top_right,
500)
if __name__ ==
"__main__"
:# 例項化乙個主迴圈
)# 例項化乙個視窗
frame = guimainframe(
none
,'game'
)# 啟動主迴圈
)
有不足之處歡迎大佬指 wxPython實現分隔視窗
1 分割視窗 分隔視窗 wx.splitterwindow 就是將視窗分成兩部分,即左右或上下兩部分,如下圖所示視窗,整體上分為左右兩個視窗,右視窗又分為上下兩視窗,兩個視窗之間的分隔線是可以拖動的,稱為 窗框 sash wx.splitterwindow中乙個常用的方法有 如下圖為乙個分割視窗,採...
wxPython簡單的視窗程式
當人們說到gui介面程式時,往往就是指有視窗,選單和圖示。自然他們就認為使用wx.window來表示乙個螢幕上的視窗,但是很不幸,因為不是這樣使用的,在wxpython裡wx.window是視覺化元件 按鈕 選單等等 的基類,而是使用wx.frame來表示程式的視窗,這種定義導致很多新同學對wxpy...
wxPython多個視窗的基本結構
如何在乙個wxpython app裡面建立兩個框架呢?供大家參考,具體內容如下 import imwww.cppcns.comport class myframe wx.frame def init self wx.frame.init class myframe2 wx.f def init se...