Seite 1 von 1

Event verändern

Verfasst: Montag 19. April 2004, 13:30
von HarryH
Hallo,

Ich arbeite mit wxPython.
Ich möchte dort gern ein ausgelöstes Key-Event verändern.
Beispiel:
Wenn ich auf meiner Tastatur "a" drücke soll "b" ausgegeben werden.

Geht das irgendwie?
Könnt ihr mir bitte weiterhelfen! Danke!

Verfasst: Montag 19. April 2004, 18:49
von Christopy
Hi
Du kannst doch die Funktion abfangen und dann ausgeben was Du willst.
Oder hab ich Dich falsch verstanden?

re:

Verfasst: Dienstag 20. April 2004, 10:35
von HarryH
Hallo,

Ich habe vor das für einen Validator zu verwenden.
Ich habe mir das so vorgestellt:
Event abfangen.
Neues Key-Event erstellen und auslösen.

Ich habe ein wxTextControll. Dort möchte ich vom Benutzer Dezimalzahlen eingeben lassen. Schreibt er ein Komma, so soll dieses nicht als Komma sondern als Punkt geschrieben werden.

Ich weiß das es da schon ein vorgegebenes Modul gibt - wxMaskedTextCtrl und wxMaskedNumCtrl- aber ich möchte es gerne selbst versuchen.

Wie könnte ich das hinbekommen?

Verfasst: Dienstag 20. April 2004, 12:02
von Christopy
Aso. Das würd ich aber im Prinzip genauso machen.
- das Event des TextCtrl abfangen
- event..m_keyCode ändern
-textCtrl.EmulateKeyPress( event ) aufrufen

Habs noch nicht getestet...

Verfasst: Dienstag 20. April 2004, 18:23
von Christopy
Das mit dem EmulateKeyPress() hab ich nicht hinbekommen. Aber man kann ja den Text von Hand ändern:

Code: Alles auswählen

    def OnPressKey( self, event ):
        if event.m_keyCode == ord(","):
            self.txtCtrl.SetValue( self.txtCtrl.GetValue() + "." )
            self.txtCtrl.SetInsertionPointEnd()
        else:
            event.Skip()
Das funktioniert für einfache Fälle. Allerdings muss man noch Fälle berücksichtigen, in denen etwas überschrieben wird, oder eine Auswahl überschrieben wird usw.