关于类的新手混淆

问题描述:

我一直在试图没有成功地控制一个类内的对象,而没有这样的类。这些是重要的位(不是全部!)关于类的新手混淆

def GOGO():     ################################################ 
    VFrame.SetStatusText("Ok") # ----> THIS IS WHAT I AM TRYING TO FIX  # 
           # ----> I have tried all sorts of combinations # 
           # ----> and I still can't change this property # 
           ################################################ 
           # How do I fix this? What am I doing wrong??? # 
           ################################################ 
class VFrame(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, parent, -1, _("Glob"), 
          size=(1024, 768), style=wx.DEFAULT_FRAME_STYLE) 
     self.SetStatusText("Ready - Disconnected from Database.") 

class MySplashScreen(wx.SplashScreen): 
    def __init__(self, parent=None): 
     aBitmap = wx.Image(name=img_splash).ConvertToBitmap() 
     splashStyle = wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT 
     splashDuration = 50 
     wx.SplashScreen.__init__(self, aBitmap, splashStyle, splashDuration, parent) 
     self.Bind(wx.EVT_CLOSE, self.CloseSplash) 
     wx.Yield() 
    def CloseSplash(self, evt): 
     self.Hide() 
     frame = VFrame(parent=None) 
     app.SetTopWindow(frame) 
     frame.Show(True) 
     evt.Skip() 

class MyApp(wx.App): 
    def OnInit(self): 
     MySplash = MySplashScreen() 
     MySplash.Show() 
     return True 

if __name__ == '__main__': 
    app = MyApp() 
    app.MainLoop() 
+0

你会得到什么错误? – katrielalex 2010-10-05 21:57:32

您需要实例化您的VFrame类。

frame = VFrame(parent) 
frame.SetStatusText("OK") 

这是

frame = VFrame(parent) 
VFrame.SetStatusText(frame, "OK") 

从本质上讲,你要告诉你,你要设置的VFrame的状态文本的电脑大多是语法糖。

+0

为了解决这个问题,除了你的建议之外,我在def CloseSplash中引入了“全局框架”。 – relima 2010-10-05 22:04:47