0

我正在为 GUI 编写一个使用 wxPython 的计算器。我创建了一个名为 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.etc etc”时,我试图将 StaticText 设置为一个变量名,这样我就可以使用 SetLabel 函数。在我尝试更新之前,该文本似乎有效。为什么我不能更新它?我如何解决它?

4

1 回答 1

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)
于 2012-06-07T05:53:58.647 回答