Ich lese mehrere wxPython Bücher und bin jetzt ziemlich vertraut mit der Bindung einer Schaltfläche mit einem Ereignis. Wie in einem __init__ Methode des wx.Frame, schrieb ich:Ereignis an wx.button directy mit wx.EVT_BUTTON binden?
self.btn = wx.Button(self, 2, "click me")
self.btn.bind(wx.EVT_BUTTON, self.onclick)
wo onclick
etwas tun müssen, wenn die Schaltfläche geklickt wird.
Vor kurzem lese ich jemandes WxPython Code und kommen über den folgenden Code:
wx.Button(self, 2, "click me")
wx.EVT_BUTTON(self, 2, self.onclick)
Der Verfasser der obigen Art und Weise verwenden Methode zu binden für jede Taste. Somit habe ich zwei Fragen:
- Der wx.Button wird instanziiert, indem er nicht an irgendeine Variable gebunden ist. Bedeutet das, dass Müll gesammelt wird?
- Ich kann kein Dokument über den Aufruf von wx.EVT_BUTTON direkt finden. Was schafft es eigentlich? Was ist der Unterschied zwischen der Verwendung der
bind()
Funktion?
Das ist eine sehr alte Syntax. Vor einigen Jahren war es der einzige Weg, und ich denke, es funktioniert immer noch. Aber jetzt wird empfohlen, die neue Syntax zu verwenden, die Sie im ersten Beispiel gezeigt haben. –
Vergessen wir nicht 'self.Bind (wx.EVT_BUTTON, self.btn, self.onclick)' https://wiki.wxpython.org/self.Bind%20vs.%20self.button.Bind –