WxPython 一 視窗分割

2021-10-24 14:34:07 字數 3063 閱讀 1026

分隔視窗(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...