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!
Event verändern
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?
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?
Gruß, Harry
Das mit dem EmulateKeyPress() hab ich nicht hinbekommen. Aber man kann ja den Text von Hand ändern:
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.
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()