TextCtl nur Zahlen eingeben

Plattformunabhängige GUIs mit wxWidgets.
Antworten
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Dienstag 18. April 2006, 18:29

Hi

Wie kann ich bei einem TextCtl machen, dass man nur Zahlen eingeben kann? Kann man irgendwo eine Eingabe-Maske angeben?

Würde gerne etwas im Format "### ### ## ##" haben.
und EVT_TEXT wird erst ausgelöst wenn der Buchstabe schon hinzugefügt wurde.

Gruss
Buell
User
Beiträge: 90
Registriert: Samstag 29. Oktober 2005, 14:17

Dienstag 18. April 2006, 19:42

würde mir spontan einfallen ein irgend ein KEY Event zu verwenden und damit unzulässige Eingaben einfach zu ignorieren.

Algorithmus:
1. Key Event an TxtCtrl gebunden
2. Bei zB KeyUp on TxtCtrl überprüfe Zeichen
3. Wenn zeichen unzulässig lösche Zeichen
...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 18. April 2006, 21:42

Buell hat geschrieben:würde mir spontan einfallen ein irgend ein KEY Event zu verwenden und damit unzulässige Eingaben einfach zu ignorieren.
Hi!

Falls dir das zu wenig ist, dann sieh dir doch mal die Beispiele der "MaskedEditControls" aus der wxPython-Demo an. Vielleicht ist das etwas für dich.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Dienstag 18. April 2006, 22:11

Hi

Ja hatte den EVT_KEY_DOWN event nicht gesehen.

Hier kleines Codesnippet:

Code: Alles auswählen

    def keyDown(self, event):
        if (48 <= event.KeyCode() <= 57 or 326 <= event.KeyCode() <= 335)and(not event.ShiftDown())and(not event.AltDown())and(not event.ControlDown()):
            event.Skip()
Und halt den EVT_KEY_DOWN an das TextCtl binden.

Gruss

*edit*
mhh genau die maskedcontrol hab ich gesucht, hab ich nicht gesehen.
Funktioniert super mit der Mask '### ### ## ##'
JanDMC
User
Beiträge: 95
Registriert: Donnerstag 23. September 2004, 19:35
Kontaktdaten:

Mittwoch 3. Mai 2006, 14:21

Weiss nicht ob du noch das Problem hast aber wie wäre es mit einem IntCtrl?
joa nää python is toll :D
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Mittwoch 3. Mai 2006, 16:07

Das Problem besteht zwar nicht mehr aber das IntCtrl ist nicht schlecht zu wissen.

Danke für die Meldung

Gruss
Antworten