Bestimme Zeichen in GtkEntry() verbieten [gelöst]

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Chrispy
User
Beiträge: 37
Registriert: Montag 10. September 2007, 22:43

Bestimme Zeichen in GtkEntry() verbieten [gelöst]

Beitragvon Chrispy » Donnerstag 8. November 2007, 08:46

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.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Donnerstag 8. November 2007, 10:02

My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Chrispy
User
Beiträge: 37
Registriert: Montag 10. September 2007, 22:43

Beitragvon Chrispy » Donnerstag 8. November 2007, 11:39

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? :?:
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Beitragvon Dauerbaustelle » Freitag 11. Januar 2008, 14:12

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 :mrgreen: :mrgreen: :mrgreen:
stam
User
Beiträge: 7
Registriert: Freitag 11. Januar 2008, 20:12
Kontaktdaten:

Beitragvon stam » Freitag 11. Januar 2008, 20:31

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...
Chrispy
User
Beiträge: 37
Registriert: Montag 10. September 2007, 22:43

Beitragvon Chrispy » Dienstag 19. Februar 2008, 14:30

Ja klappt. Danke :D
Benutzeravatar
zerghase
User
Beiträge: 15
Registriert: Samstag 19. November 2005, 21:15
Wohnort: München

Beitragvon zerghase » Dienstag 19. Februar 2008, 19:17

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.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder