wxPythonのCoreコンポーネント--BoxSizer
3612 ワード
wx.BoxSizer:
The orientation can be wx.VERTICAL or wx.HORIZONTAL
パラメータの解読:
1、proportion:
proportionパラメータは、コンポーネントが既定の方向に占める空間の割合を定義します.相対的に、他のコンポーネントに対して例を挙げます.3つのボタンがあります.proportionの値はそれぞれ0,1,2です.3つのボタンは水平方向のsizerに配置され、Button with proportion 0 will not change at allである.しかし、Button with proportion 2はthe one with proportion 1より2倍大きく水平位置にある.
この例ではproportionパラメータの役割を観察できる
2、flag:
flagパラメータは'|'を用いて組合せられた複数のflagsを生成することができる.
flagパラメータは、2つの主要な動作を定義します.
最初のパラメータはウィンドウの枠線です.このパラメータは枠線の幅を決定し、ウィンドウの片側に枠線を追加するイベントを決定します.
もう1つのパラメータは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というコンポーネントが空間を十分に利用することを表しているが,周囲から20 pxを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
次の例を見てみましょう.
この例では、既存のhbox 5をvbox全体として配置するが、wx.ALIGN_RIGHTが果たす役割はhbox 5という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
あと2つは列に並んでいませんが、使えばヘルプドキュメントを調べることができます
最後に、アプリケーションに空白の領域を追加する必要がある場合があります.次のコードを使用します.
vbox.Add(-1,25)---25画素の空きスペースを追加
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パラメータは、コンポーネントが既定の方向に占める空間の割合を定義します.相対的に、他のコンポーネントに対して例を挙げます.3つのボタンがあります.proportionの値はそれぞれ0,1,2です.3つのボタンは水平方向のsizerに配置され、Button with proportion 0 will not change at allである.しかし、Button with proportion 2はthe one with proportion 1より2倍大きく水平位置にある.
import wx
class Border(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(250, 200))
panel = wx.Panel(self, -1,size=(250,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パラメータは、2つの主要な動作を定義します.
最初のパラメータはウィンドウの枠線です.このパラメータは枠線の幅を決定し、ウィンドウの片側に枠線を追加するイベントを決定します.
もう1つのパラメータは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というコンポーネントが空間を十分に利用することを表しているが,周囲から20 pxを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)
この例では、既存のhbox 5をvbox全体として配置するが、wx.ALIGN_RIGHTが果たす役割はhbox 5というsizerの中で横方向に右に置く調整です
次に、一般的なflagパラメータを示します.
1、These flags are used to specify which side(s) of the sizer item that the border width will apply to.
2、The item will be expanded to fill the space allotted to the item.
wx.EXPAND
あと2つは列に並んでいませんが、使えばヘルプドキュメントを調べることができます
最後に、アプリケーションに空白の領域を追加する必要がある場合があります.次のコードを使用します.
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add((-1, 25))
vbox.Add(-1,25)---25画素の空きスペースを追加