グリッドバッグサイザーを使用して、フレーム内に2つのパネルを配置しています。
control_panel = wx.Panel(self, id=ID_CONTROL_PANEL)
main_panel = wx.Panel(self, id=ID_MAIN_PANEL)
frame_sizer = wx.GridBagSizer(1, 1)
frame_sizer.Add(control_panel, (0, 0), (2, 5), flag=wx.EXPAND)
frame_sizer.Add(main_panel, (2, 0), (5, 5), flag=wx.EXPAND)
frame_sizer.AddGrowableRow(0)
frame_sizer.AddGrowableCol(0)
self.SetSizer(frame_sizer)
control_panelをmain_panelの上に配置します(上記のように)。しかし、これは私が得る出力です:
反対を指定したのに、なぜトップパネルがボトムパネルよりもはるかに大きいのかわかりません。(2、5)は上部、(5、5)は下部です。また、サイズを小さくすると奇妙な動作をします。基本的には必要なものが得られます(下の画像を参照)が、再度大きくしたときに比率を維持する方法がわかりません。
ただし、サイズを大きく(少しでも)開始すると、形状と比率が反対方向に劇的に変化することがわかります(下部がはるかに小さくなり、上部がはるかに大きくなります)。
まだこのサイザーを学ぼうとしていて、私が見たどの例でもこの問題を実際に見つけることはできません。また、すべてのパラメーターを試し、いくつかのテストを実行しようとしましたが、ここで何が起こっているのか理解できません。どんな助けでも大歓迎です。
編集:下のコメントを支援するために下の画像を追加しました。