2015-10-03 62 views
0

我正在爲筆記本創建一個面板,而且我需要添加一個sizer。然而,當我運行代碼:使用SetSizer時出現TypeError()

class HomePanel(wx.Panel): 

    def __init__(self, parent): 
     wx.Panel.__init__(self, parent=parent) 

     [...Widget Code...] 

     self.verticalsizer = wx.BoxSizer(wx.VERTICAL) 
     self.verticalsizer.AddStretchSpacer(prop=1) 

     self.verticalsizer.Add(self.text, flag=wx.ALIGN_CENTER | wx.BOTTOM, border=30) 
     self.verticalsizer.Add(self.text1, flag=wx.ALIGN_CENTER | wx.BOTTOM, border=20) 

     self.verticalsizer.AddStretchSpacer(prop=1) 

     HomePanel.SetSizer(self.verticalsizer) 
     HomePanel.Layout() 

我得到一個類型錯誤就行了SetSizer():

TypeError: unbound method SetSizer() must be called with HomePanel instance as first argument (got BoxSizer instance instead) 

我不知道還有什麼我可以分配SetSizer(),但因爲這不會工作,或者我卡住了。有沒有辦法解決這個問題或者做得更好?

+0

爲什麼你想使用類調用實例方法?爲什麼不只是'self.SetSizer(self.verticalsizer); self.Layout()'? – ekhumoro

回答

1

相反的:

 HomePanel.SetSizer(self.verticalsizer) 
     HomePanel.Layout() 

使用自:

 self.SetSizer(self.verticalsizer) 
     self.Layout() 
+0

謝謝 - 你可以看到一個wxpython noob。 –

相關問題