何が間違っているのかわかりません。Tkinter から wxPython にジャンプしたばかりで、BoxSizers を理解しようとしています。この質問を調べたいのですが、何を調べればよいかさえわかりません。このパネルはフレームのスペースを埋めており、その下にプログレスバーがあるテキスト行を表示することになっており、それはすべてパネルの下部 1/5 程度を占め、水平方向の中央に配置されることになっています (最終的にはその背後に背景画像を追加します)。しかし、何が起こるかというと、ウィンドウの左端に揃えられた、テキストだけが上から約 40% 下に表示されるだけです。コードは次のとおりです。
class KhPanel(wx.Panel):
def __init__(self, parent, configSet, selectWindow):
wx.Panel.__init__(self, parent=parent)
self.frame = parent
self.configSet = configSet
whichWindow = getattr(self, selectWindow)
whichWindow()
def configWindow(self):
gaugeWidth = (1/5)*self.configSet["width"]
gaugeHeight = (1/10)*self.configSet["height"]
gaugeMax = 100
topBuffer = (8/10)*self.configSet["height"]
itemSep = (1/16)*self.configSet["height"]
vSizer = wx.BoxSizer(wx.VERTICAL)
textSizer = wx.BoxSizer(wx.HORIZONTAL)
progressSizer = wx.BoxSizer(wx.HORIZONTAL)
configText = wx.StaticText(self, label="STUFF", style=wx.ALIGN_CENTER)
configProgressBar = wx.Gauge(self, range=gaugeMax, size=(gaugeWidth, gaugeHeight))
textSizer.Add(configText, 1, wx.ALIGN_CENTER, 0)
progressSizer.Add(configProgressBar, 1, wx.ALIGN_CENTER, 1)
vSizer.Add(textSizer, 1, wx.TOP, topBuffer)
vSizer.Add(progressSizer, 1, wx.TOP, itemSep)
self.SetSizer(vSizer)
vSizer.Fit(self)
return
情報が必要な場合、configSet.width と height は親ウィンドウの幅と高さ (現在は 340 x 270) です。この場合、selectWindow は「configWindow」です。