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
Entry Eingabe nicht ins Entry einfügen
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.
[color=green][size=75]Never use idle.pyw, if you need sys.stdin[/size][/color]
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
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:
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
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(".",""))
'KeyRelease' ist vmtl. besser.
Aber wie gefragt, wieso tut es "<KeyRelease-Return>" nicht?
Gruß, jj
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Warum kann man nicht einfach die Tab-Taste verwenden?lordmyder hat geschrieben:Ich will das wenn man einen Punkt eingibt der Fokus zum nächsten Fenster springt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Es is alles blöd zu erklären. Glaubt mir einfach das ich das brauche.
Das mit dem Releasen hat funktioniert. Danke!
Das mit dem Releasen hat funktioniert. Danke!