为什么我不能更新wxPython StaticText?

时间:2012-06-07 05:49:04

标签: python function text attributes wxpython

我正在使用wxPython为GUI编写计算器。我创建了一个名为display的类来使用StaticText来显示文本。无论如何,当我尝试更新屏幕时,它会引发异常。 这是代码:

class display:
    def __init__(self,parent, id):
        print "display class is working"
        global string1
        self.view = wx.StaticText(frame, -1, "Waiting", (30,7), style = wx.ALIGN_CENTRE)

    @staticmethod
    def update(self):
        global string1
        self.view.SetLabel(string1)

每当我尝试运行Update()函数时,它都会引发此异常:

AttributeError: 'function' object has no attribute 'view'

当我写" self.view = wx时。等等#34;,我试图将StaticText设置为变量名,所以我可以使用SetLabel函数。在我尝试更新之前,该文本似乎有效。为什么我无法更新它?我该如何解决?

1 个答案:

答案 0 :(得分:0)

@staticmethods没有参数...所以它实际上没有自我...你需要让它成为一个获得cls的@classmethod,或者你需要让它成为一个普通的方法

class display:
    view = None
    def __init__(self,parent, id):
        print "display class is working"
        global string1
        display.view = wx.StaticText(frame, -1, "Waiting", (30,7), style = wx.ALIGN_CENTRE)

    @classmethod
    def update(cls):
        global string1
        cls.view.SetLabel(string1)