wx Python - Nur numerische Eingabe akzeptieren

Plattformunabhängige GUIs mit wxWidgets.
Antworten
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Wie sorge ich in Python dafür, das nur numerische Werte in ein Textfeld geschrieben werden?

Suche zwar jetzt selber noch weiter danach, aber wenn jemand ne Lösung weiss wäre ich dankbar.

Im übrigen möchte ich noch einmal na mein GROßES Problem erinnern. Das mit den BoxSizern.
Hier der Link http://python.sandtner.net/viewtopic.ph ... 132836d264

Schon mal ein "Danke" vorab.

2bock
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi 2bock,

da wirst Du einen wxTextValidator an Dein Textfeld binden müssen.


Gruß

Dookie
2bock
User
Beiträge: 94
Registriert: Freitag 12. September 2003, 07:58
Wohnort: 50.9333300 / 6.3666700

Die Lösung ist unter wxPython ganz iebfach.

control = wxMaskedTextCtrl( win, -1, '', mask = '(###) ###-####')



Initialisierungsparameter für "Mask"
========================
mask=

# nur numerisch (0-9)
N buchstaben und zahlen (0-9)
A nur großbuchstaben
a nur keingeschriebenes
C nur Buchstaben (groß und klein)
X erlaubt string.letters, string.punctuation, string.digits

:wink:
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo 2Bock

In wxPython gibt es kein wxMaskedTextCtrl
Ich habe es zumindest in der Doku nicht gefunden!
Gruß, Harry
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

@HarryH
Leider ist die Dokumentation nicht ganz vollständig. Mit

Code: Alles auswählen

from wxPython.lib.maskededit import wxMaskedTextCtrl
kannst Du es benutzen.

@2bock
Danke für den Tipp!
Wie hast Du das gefunden?
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Hallo Christopy,

Alles klar, Danke!

Da fällt mir noch ein, Dookie sprach noch von wxTextValidator. Dieser ist zwar in der Doku vorhanden, beim Laden wir allerdings folgender Fehler gezeigt:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\hh16534\Eigene Dateien\2-Eigene_Programme\PPTool\PPTool.py", line 2567, in ?
    app = MyApp(0)
  File "D:\Python23\Lib\site-packages\wx\core.py", line 5042, in __init__
    self._BootstrapApp()
  File "D:\Python23\Lib\site-packages\wx\core.py", line 4791, in _BootstrapApp
    return _core.PyApp__BootstrapApp(*args, **kwargs)
  File "C:\Dokumente und Einstellungen\hh16534\Eigene Dateien\2-Eigene_Programme\PPTool\PPTool.py", line 2562, in OnInit
    frame = MyFrame(None, -1, "CNC-PP-Tool", 1)
  File "C:\Dokumente und Einstellungen\hh16534\Eigene Dateien\2-Eigene_Programme\PPTool\PPTool.py", line 110, in __init__
    self.Validator=wx.TextValidator(style=wxFILTER_ALPHANUMERIC)
AttributeError: 'module' object has no attribute 'TextValidator'
>Exit code: 1
Gruß, Harry
Antworten