1

次のような wxwidgets UI クラスが存在します。

class mainFrame ( wx.Frame ):
     def __init__( self, parent ):
         # Constructor code
         # ...
         # ...
     # Virtual event handlers, overide them in your derived class
     def about_click( self, event ):
         event.Skip()
     def search_perform( self, event ):
         event.Skip()   
     def new_note_event( self, event ):
         event.Skip()   
     def save_note_event( self, event ):
         event.Skip()

このクラスのインスタンスを直接構築してイベントスタブを埋めることができ、それは機能しますが、UI コード ファイルをまったく変更するべきではないと確信していますが、それをベースとして使用します。クラス。

使ってみた

class Main(mainFrame):
    def __init__(self):
        super(mainFrame, self).__init__(self, None)

上記は機能しません。

4

1 に答える 1

1

現在修正されています。super()通話が機能していません。代わりに親クラスを名前で参照すると、機能します。

私がUIクラスを使用している方法は

class Main(mainFrame):
    def __init__(self):
        mainFrame.__init__(self, None) # using super().__init__(self, None) fails
    def about_click( self, event ):
        print("AboutDialog")

def main():
    app = wx.PySimpleApp(0)
    frame = Main()
    app.SetTopWindow(frame)
    frame.Show()
    app.MainLoop()

if __name__ == '__main__':
    main()

super() 古いスタイルのクラスではまったく機能しません。いずれかまたは他の新しいスタイルのクラスから継承する新しいスタイルのクラスに対してのみ機能します。object

于 2013-03-31T14:11:35.583 に答える