0

GUI に wxPython を使用して電卓を作成しています。テキストを表示するために StaticText を使用するために、display というクラスを作成しました。とにかく、画面を更新しようとすると、例外が発生します。コードは次のとおりです。

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 に答える