伸びる画面
こんな画面を作ろうと思った:
右側だけ伸び縮みするのだよ:
コードはこんな感じなのだよ:
import wx class MainPenel(wx.Panel): def __init__(self, parent, idn, *args, **kw): wx.Panel.__init__(self, parent, idn, *args, **kw) stext1 = wx.StaticText(self, wx.ID_ANY, u'名前:', style=wx.ALIGN_RIGHT) stext2 = wx.StaticText(self, wx.ID_ANY, u'現住所:', style=wx.ALIGN_RIGHT) textc1 = wx.TextCtrl(self, wx.ID_ANY) textc2 = wx.TextCtrl(self, wx.ID_ANY) sizer = wx.FlexGridSizer(cols=2) sizer.AddMany([(stext1, 0, wx.EXPAND | wx.ALL, 5), (textc1, 0, wx.EXPAND | wx.ALL, 5), (stext2, 0, wx.EXPAND | wx.ALL, 5), (textc2, 0, wx.EXPAND | wx.ALL, 5), ]) sizer.AddSpacer(1) sizer.Add(wx.Button(self, wx.ID_ANY, "OK"), 0, wx.ALIGN_RIGHT | wx.ALL, 5) sizer.AddGrowableCol(1) self.SetSizer(sizer) sizer.Fit(self) def main(): app = wx.PySimpleApp() frame = wx.Frame(None, wx.ID_ANY, "データ入力") panel = MainPenel(frame, wx.ID_ANY) frame.Show() app.MainLoop() if __name__ == '__main__': main()
FlexGridSizerのAddGrowableCol()で伸び縮みする列を指定するのが重要なのだよ。
参考:wxPython Demo の Sizers の Flexible Grid