In wxPython, wie binden Sie eine EVT_KEY_DOWN Ereignis, auf das ganze Fenster?
Kann ich binden ein Ereignis zu einem textctrl-box np. Das problem ist, ich habe geklickt werden innerhalb der textctrl-box zu "fangen" diese Veranstaltung. Ich hoffe in der Lage sein zu fangen jederzeit jemand drückt die Pfeil-Tasten, während das Hauptfenster den Fokus hat.
NICHT FUNKTIONIERT:
wx.EVT_KEY_DOWN(self, self.OnKeyDown)
ARBEITEN:
self.NudgeTxt = wx.TextCtrl(self.panel, size=(40,20), value=str(5))
wx.EVT_KEY_DOWN(self.NudgeTxt, self.OnKeyDown)
Ich bin ziemlich sicher, dass mir etwas fehlt einfach. Allerdings bin ein wenig stecken.
- sorry, wie binden Sie das key-down-Ereignis für das Textfeld? cos, das ist genau was ich brauche!
wx.EVT_KEY_DOWN(self.NudgeTxt, self.OnKeyDown)
scheint nicht zu funktionieren für mich
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stattdessen versuchen die Bindung an
wx.EVT_CHAR_HOOK
e.g..
Könnten Sie EVT_CHAR_HOOK,
oder verwenden Sie eine accelerator-Tabelle
benötigen Sie eine Schaltfläche oder widgets' ID in der accelerator-Tabelle, und drücken Sie die Taste trigger-widgets' event-handler.
Wenn du keine widgets, dass Sie möchten, Ihre Ereignisse ausgelöst werden, und würde eher eine Art "unsichtbare" widget, event-bindings, dann können Sie dies tun:
Ich Durchlaufen Interessierte Schlüssel, zu binden, und erstellen Sie neue widgets-IDs für Sie. Ich habe dann diese IDs verwenden, zum binden von Menüelementen (die accelerator-Tasten trigger) und verwenden Sie diese IDs in das accelerator-Tabelle s Liste von Tupeln.