TextCtl nur Zahlen eingeben

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

TextCtl nur Zahlen eingeben

Beitragvon rayo » 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

Beitragvon Buell » 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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » 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:

Beitragvon rayo » 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:

Beitragvon JanDMC » 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:

Beitragvon rayo » 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

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]