wxPythonのCoreコンポーネント--BoxSizer

3612 ワード

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パラメータは、コンポーネントが既定の方向に占める空間の割合を定義します.相対的に、他のコンポーネントに対して例を挙げます.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.
  • 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 = wx.BoxSizer(wx.VERTICAL)
     vbox.Add((-1, 25))

    vbox.Add(-1,25)---25画素の空きスペースを追加