Seite 1 von 1
Bestimme Zeichen in GtkEntry() verbieten [gelöst]
Verfasst: Donnerstag 8. November 2007, 08:46
von Chrispy
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.
Verfasst: Donnerstag 8. November 2007, 10:02
von veers
Verfasst: Donnerstag 8. November 2007, 11:39
von Chrispy
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?

Verfasst: Freitag 11. Januar 2008, 14:12
von Dauerbaustelle
Chrispy 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?

Lies doch den Text jedesmal aus und lösche alle unerwünschten Zeichen

Verfasst: Freitag 11. Januar 2008, 20:31
von stam
eigentlich müsste es so gehen:
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
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...
Verfasst: Dienstag 19. Februar 2008, 14:30
von Chrispy
Ja klappt. Danke

Verfasst: Dienstag 19. Februar 2008, 19:17
von zerghase
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
So sollte es auch tun wenn längere Strings eingefügt werden.