wxFrame に wxCollapsiblePane と wxGrid があります。wxCollapsiblePane を折りたたんだり展開したりするたびに、フレーム全体のサイズが変更されます。私が望むのは、代わりに wxGrid を拡大および縮小し、フレームを同じサイズのままにすることです。また、wxFrame を 500x500 のサイズで明示的に作成していますが、実際には内容に合わせて縮小されていることにも気付きました。これはサイザーと関係があると思いますが、私が試したものはこれに影響を与えていないようです. 誰かが私が間違っているところを指摘できますか? これまでの私のコードは次のとおりです。
import wx
import wx.grid
class Frame(wx.Frame):
def __init__(self, *args, **kwargs):
super(Frame, self).__init__(*args, **kwargs)
cpane = wx.CollapsiblePane(self)
p = cpane.GetPane()
sz = wx.BoxSizer()
sz.Add(wx.TextCtrl(p), 1, wx.EXPAND)
p.SetSizer(sz)
sizer = wx.BoxSizer(wx.VERTICAL)
self.grid = wx.grid.Grid(self)
self.grid.CreateGrid(5, 5)
sizer.Add(cpane, 0, wx.EXPAND)
sizer.Add(self.grid, 1, wx.EXPAND)
self.SetSizer(sizer)
self.SetAutoLayout(1)
sizer.Fit(self)
self.Show()
app = wx.App(False)
win = Frame(None, size=(500, 500))
win.Show()
app.MainLoop()