bin gerade dabei, mich mit "wxPython in Action" und verschiedenen Online-Anleitungen in die Materie einzuarbeiten. Dabei stoße ich immer wieder auf widersprüchliche Aussagen zur Klasse wx.App() und deren OnInit-Methode. Daher meine Fragen:
- Für was braucht es die OnInit-Methode überhaupt. Die Anweisungen innerhalb der OnInit-Methode lassen sich doch auch in die wx.App.__init__-Methode schreiben (wo sie meinem Python-Verständnis nach auch eher hingehören).
Folgender Code
Code: Alles auswählen
class App(wx.App):
def __init__(self):
wx.App.__init__(self)
self.frame = Frame(parent=None, id=-1, size=(800,600), pos=(150,150), title='Test')
self.frame.Show()
self.SetTopWindow(self.frame)
if __name__ == '__main__':
app = App()
app.MainLoop()
Code: Alles auswählen
class App(wx.App):
def __init__(self):
wx.App.__init__(self)
def OnInit(self):
self.frame = Frame(parent=None, id=-1, size=(800,600), pos=(150,150), title='Test')
self.frame.Show()
self.SetTopWindow(self.frame)
return True
if __name__ == '__main__':
app = App()
app.MainLoop()
Und wenn ich überhaupt keine Subclass App() definiere, funktioniert es genauso, siehe:
Code: Alles auswählen
if __name__ == '__main__':
app = wx.App()
frame = Frame(parent=None, id=-1, size=(800,600), pos=(150,150), title='Test')
frame.Show()
app.SetTopWindow(frame)
app.MainLoop()
Noch eine Frage: Die Methode 'SetTopWindow()' ist doch nicht wirklich notwendig, oder doch?
Ich möchte halt einfach nicht stupide irgendeinen Code aus schlauen Büchern und Tutorials verwenden, der letztlich nicht notwendig ist. Genauso wenig möchte ich vermeintlich unnützen Code weglassen, der dann doch Vorteile mit sich bringt, von denen ich momentan noch nichts weiß...

Danke schon mal für jede Hilfe!!
Liebe Grüße
mutetella