您好,登錄后才能下訂單哦!
這篇文章給大家介紹BoxSizer如何在Python中使用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
wx.BoxSizer:
box = wx.BoxSizer(integer orient)
The orientation can be wx.VERTICAL or wx.HORIZONTAL
box.Add(wx.Window window, integer proportion=0, integer flag = 0, integer border = 0)
參數解讀:
1、proportion:
proportion參數定義了構件在既定方向上所占空間的比例,是相對的,相對于其他組件
舉個例子:我們有三個按鈕,proportion的值分別是0,1,2。三個按鈕被放置到水平方向的sizer當中,Button with proportion 0 will not change at all。但是, Button with proportion 2將會比the one with proportion 1大兩倍在水平位置上。
# -*- coding:utf-8 -*- import wx class Border(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, 'www.jb51.net - BoxSizer', size=(350, 200)) panel = wx.Panel(self, -1,size=(350,200)) panel.SetBackgroundColour('white') boxsizer1 = wx.BoxSizer(wx.VERTICAL) btn1 = wx.Button(panel, -1, 'Botton1') btn2 = wx.Button(panel, -1, 'Botton2') btn3 = wx.Button(panel, -1, 'Botton3') boxsizer1.Add(btn1, proportion=0, flag=wx.EXPAND, border=0) boxsizer1.Add(btn2, proportion=1, flag=wx.ALL, border=0) boxsizer1.Add(btn3, proportion=2, flag=wx.ALL, border=0) self.SetSizer(boxsizer1) self.Centre() self.Show(True) app = wx.App() Border(None, -1, '') app.MainLoop()
運行結果:
通過這個例子可以觀察出proportion參數的作用
2、flag:
flag參數可以使用 '|'來產生組合的多個flags。
flag參數定義了兩個主要的行為:
第一個參數是窗口的邊框:這個參數決定了邊框的寬度,在此決定窗口某一側添加邊框的事件。
另一個參數決定了sizer事件的行為,當sizer改變時,空間的分配。并且分配的多少依賴于特定種類的sizer被使用。
3、border:設置邊界寬度
Determines the border width, if the flag parameter is set to include any border flag
最后特別說明:
flag和border參數兩者結合起來使用的。
vbox.Add(midPan, 1, wx.EXPAND | wx.ALL, 20)
flag=wx.EXPAND | wx.ALL,border=20---------這代表的是midPan這個組件將充分的利用空間,但是會從四周預留出來20px作為border。所以如果說使用了wx.EXPAND flag,而沒有設定border,那么我們的組件將充分的利用分配的空間。
最后,我們也能去定義調整我們的組件。但是這種調整是指在sizer分配給當前構件的空間之內的一種調整。
We do it with the following flags :
wx.ALIGN_LEFT
wx.ALIGN_RIGHT
wx.ALIGN_TOP
wx.ALIGN_BOTTOM
wx.ALIGN_CENTER_VERTICAL
wx.ALIGN_CENTER_HORIZONTAL
wx.ALIGN_CENTER
看下面一個例子:
hbox5 = wx.BoxSizer(wx.HORIZONTAL) btn1 = wx.Button(panel, -1, 'Ok', size=(70, 30)) hbox5.Add(btn1, 0) btn2 = wx.Button(panel, -1, 'Close', size=(70, 30)) hbox5.Add(btn2, 0, wx.LEFT | wx.BOTTOM , 5) vbox.Add(hbox5, 0, wx.ALIGN_RIGHT | wx.RIGHT, 10)
這個例子將已有的hbox5放置到vbox當總,而wx.ALIGN_RIGHT所起到的作用就是在hbox5這個sizer當中的橫向往右放置的調整
下面是常用的flag參數:
1、These flags are used to specify which side(s) of the sizer item that the border width will apply to.
wx.TOP wx.BOTTOM wx.LEFT wx.RIGHT wx.ALL
2、The item will be expanded to fill the space allotted to the item.
wx.EXPAND
還有兩個沒有列出來,如果用到的話,可以查幫助文檔
最后,有些情況下我們需要添加一些空白的區域到我們的應用當中,可以使用下面的代碼:
vbox = wx.BoxSizer(wx.VERTICAL) vbox.Add((-1, 25)) vbox.Add((-1, 25))---添加了25個像素的空白空間
關于BoxSizer如何在Python中使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。