サイザーでコントロールを配置したウィンドウの大きさを(自動?)調整する

サイザーを使ってウィンドウ上にコントロールを並べているのだが、どうも思うように配置ができない。色々と試行錯誤中であるのだが、デモの中で見たことのないテクニックを発見した(単に自分が勉強不足なだけだが)。
demo/ExpandoTextCtrl.pyの中で、パネルオブジェクトをサイザーの中に入れている。以下、抜粋。

#Put the panel in a sizer for the frame so we can use self.Fit()
frameSizer = wx.BoxSizer()
frameSizer.Add(p, 1, wx.EXPAND)
self.SetSizer(frameSizer)

self.Fit()

自分のコードの中でも試してみたが、パネルオブジェクトをサイザーに入れてもうまく動作しない。なので、この部分で何をやっているのかはひとまず置いておいて、初見のself.Fit()に注目した。Fit()だけ、試験的に使ってみた。以下、テストコード。

import wx

class MyApp(wx.PySimpleApp):
    def OnInit(self):
        Frm = wx.Frame(None, -1, "wxPython")

        TxtCtr1 = wx.TextCtrl(Frm, -1, "Sentence...")
        Btn1 = wx.Button(Frm, -1, "Button 1")

        BxSz = wx.BoxSizer()
        BxSz.Add(TxtCtr1, 0, wx.EXPAND|wx.ALL, 20)
        BxSz.Add(Btn1, 0, wx.EXPAND|wx.ALL, 20)
        Frm.SetSizer(BxSz)
        Frm.Show()
        Frm.Fit()
       
        return True

app = MyApp()
app.MainLoop()

その結果、Frm.Fit()を加えると、ウィンドウの大きさが自動調整されるようだ。実行結果の写真を載せておく。
Fitメソッドって役に立つかもしれない。