奇妙な動作をする wxpython コードがいくつかあります。これは OKAY コードです:
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title,size=(500, 300))
self.CreateStatusBar()
panel = wx.Panel(self)
self.srcSizer = wx.BoxSizer(wx.HORIZONTAL)
srcButton = wx.Button(panel, wx.ID_ANY, "src")
srcButton.Bind(wx.EVT_BUTTON, self.onSrcButton)
self.srcSizer.Add(srcButton, 0)
self.srcTxt = wx.TextCtrl(panel, wx.ID_ANY)
self.srcSizer.Add(self.srcTxt, 1, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=10)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.srcSizer, 0 , flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10)
panel.SetSizer(self.sizer)
self.Show(True)
ステータスバーとパネルを作成する2行を入れ替えると、
panel = wx.Panel(self)
self.CreateStatusBar()
次に、ウィンドウがロードされるとボタンと textctrl が重なり、手動でウィンドウのサイズを変更すると、それらは通常の位置に戻されます!!
self.CreateStatusBar() は、パネルなどを作成する前に常にある必要がありますか?
ありがとう