Bestimme Zeichen in GtkEntry() verbieten [gelöst]
Weiss jemand ob es eine Funktion zum verbieten bestimmer Zeichen in Textfeldern gibt? z.B. Leerzeichen und Slashes sollen nicht eintippbar sein. Danke im Vorraus.
Zuletzt geändert von Chrispy am Dienstag 19. Februar 2008, 14:38, insgesamt 1-mal geändert.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Erstes Resultat von Google:
http://www.mail-archive.com/pygtk@daa.c ... 12516.html
http://www.mail-archive.com/pygtk@daa.c ... 12516.html
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Lies doch den Text jedesmal aus und lösche alle unerwünschten ZeichenChrispy hat geschrieben:Dafür bin ich zu blöd. Ich schreibe meine Pygtk-Programme anders und die UI in Glade, bekomms aber nicht hin, umzudenken.
Gibt's nicht noch ne andere Methode, die auch ich begreife?
eigentlich müsste es so gehen:
Falls dein Fenster in einer Klasse definiert wurde, vergiss nicht, die ganzen "self"s einzufügen.
Das funktioniert aber nicht, falls ein größerer Textblock gepasted wird, denke ich...
Code: Alles auswählen
# jedes Mal, wenn Text in myentry eingegeben wird, triggere on_insert
myentry.connect('insert_text', on_insert)
def on_insert(entry, text, length, *args):
not_wanted_list = ['/', ' '] # Liste der ungewollten Zeichen
if text in not_wanted_list:
entry.emit_stop_by_name('insert_text') # verhindert, dass der eingegebene Text ins Textfeld eingetragen wird
Das funktioniert aber nicht, falls ein größerer Textblock gepasted wird, denke ich...
Code: Alles auswählen
# jedes Mal, wenn Text in myentry eingegeben wird, triggere on_insert
myentry.connect('insert_text', on_insert)
def on_insert(entry, text, length, *args):
not_wanted_list = ['/', ' '] # Liste der ungewollten Zeichen
for c in not_wanted_list:
if c in text:
entry.emit_stop_by_name('insert_text')
break