Entry Eingabe nicht ins Entry einfügen

Fragen zu Tkinter.
lordmyder

Entry Eingabe nicht ins Entry einfügen

Beitragvon lordmyder » Montag 7. Mai 2007, 16:43

Hallo,
ich habe drei Entrys. Ich will das wenn man einen Punkt eingibt der Fokus zum nächsten Fenster springt. Das funktioniert auch, nur schreibt er den Punkt natürlich in das Entry, und das würde ich gerne wegmachen.
Es funktioniert nicht einfach den Inhalt auszulesen und das letzte Zeichen zu streichen, da bleibt der Punkt immer da.
Kann mir jemand sagen, wie ich das löse?
Danke schon mal
LordMyder
joost
gelöscht
Beiträge: 134
Registriert: Sonntag 29. April 2007, 13:28

Beitragvon joost » Montag 7. Mai 2007, 17:09

Das Key-Release-Event auswerten. Der '.' ist dann schon da und Du kannst ihn im Callback löschen. Key-Release ist sehr oft besser als Key-Press.
Never use idle.pyw, if you need sys.stdin
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Beitragvon schlangenbeschwörer » Montag 7. Mai 2007, 17:44

Hi lordmyder!
Es ist sehr ungewöhnlich und vlt. auch Userverwirrend was du da machen willst. Wenn die Eingabe mit einem Punkt zu ende ist, ok, aber den Punkt wieder löschen? Und was ist, wenn jemand einen Punkt eingeben will? Vlt. soll man das ja nicht, aber der DAU macht das halt (oder vertippt sich), und dann ist er wo anders, merkt es nicht, tippt weiter, merkt dann, was los ist, und wundert sich. Du könntest die Entertaste nehmen, die geht in einem Entry eh nicht und ist für sowas gebräuchlicher...

Aber wenn du es umbedingt machen willst:

Code: Alles auswählen

entry.bind(event, handler)
def handler(event):
    s=entry.get()
    entry.delete(0,"end")
    entry.insert(0, s.replace(".",""))


Was du nun als Event nimmst, ist so eine Sache. joost hat schon Recht, wenn man die Punkt-Taste gedrückt hält, kommen bei 'KeyPress' ewig viele Events, bei 'KeyRelease' nur eins. Andererseits erscheinen im Entry die Punkte, was auch verwirren kann...
'KeyRelease' ist vmtl. besser.

Aber wie gefragt, wieso tut es "<KeyRelease-Return>" nicht?

Gruß, jj
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Entry Eingabe nicht ins Entry einfügen

Beitragvon Leonidas » Montag 7. Mai 2007, 18:12

lordmyder hat geschrieben:Ich will das wenn man einen Punkt eingibt der Fokus zum nächsten Fenster springt.

Warum kann man nicht einfach die Tab-Taste verwenden?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lordmyder

Beitragvon lordmyder » Montag 7. Mai 2007, 21:51

Es is alles blöd zu erklären. Glaubt mir einfach das ich das brauche.
Das mit dem Releasen hat funktioniert. Danke!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder