お気づきのように、サイザーを使用すると「もの」が収まるように拡張され、適切に使用されないと、プロポーション フラグがレイアウトに大混乱をもたらす可能性があります。
この単純なコードで遊んでください。
import wx
class Summary(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Playing with Simple Sizers", size=(430,260))
self.panel = wx.Panel(self, wx.ID_ANY)
self.log = wx.TextCtrl(self.panel, wx.ID_ANY, value="input1:",size=(428,25))
self.log2 = wx.TextCtrl(self.panel, wx.ID_ANY, value="input2:", size=(428,25))
self.quit_button = wx.Button(self.panel, label="Quit",size=(60,25))
self.button1= wx.Button(self.panel, label="1",)
self.button2 = wx.Button(self.panel, label="2",size=(60,25))
self.button3 = wx.Button(self.panel, label="3",size=(60,25))
self.button4 = wx.Button(self.panel, label="4",size=(60,25))
self.quit_button.Bind(wx.EVT_BUTTON, self.OnQuit)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
vbox.Add(self.quit_button, 0, wx.ALL|wx.EXPAND, 1)
hbox1.Add(self.log, 0, wx.ALL|wx.EXPAND, 1)
hbox2.Add(self.log2, 0, wx.ALL|wx.EXPAND, 1)
hbox3.Add(self.button1, 1, wx.ALL|wx.EXPAND, 1)
hbox3.Add(self.button2, 2, wx.ALL|wx.EXPAND, 1)
hbox4.Add(self.button3, 0, wx.ALL|wx.EXPAND, 1)
hbox4.Add(self.button4, 1, wx.ALL|wx.EXPAND, 1)
vbox.Add(hbox1, 0, wx.ALIGN_RIGHT|wx.EXPAND, 1)
vbox.Add(hbox3, 0, wx.ALIGN_RIGHT|wx.EXPAND, 1)
vbox.Add(hbox4, 0, wx.ALIGN_RIGHT|wx.EXPAND, 1)
vbox.Add(hbox2, 0, wx.ALIGN_RIGHT|wx.EXPAND, 1)
self.panel.SetSizer(vbox)
self.Show()
def OnQuit(self, event):
self.Close()
# Run the program
if __name__ == "__main__":
app = wx.App()
frame = Summary()
app.MainLoop()
プロポーション フラグは、サイザーに追加するときの 2 番目のパラメーターです。
ボタンに対して 0、1、および 2 に設定されていることに注意してください。それらを変更して、ボタン同士の関係でボタンに何が起こるかを確認し、ボタンのサイズ パラメータを操作します。
self.log または self.log2 の比率フラグを 1 に変更し、それが拡大するのを確認します。
最後にフレームサイズを広くして反応を見てみます。
サイザーは最初は非常にイライラすることがありますが、一度「理解」すると強力なツールになります。