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 回答