Return binden

Fragen zu Tkinter.
Antworten
Benutzeravatar
sorgenlos
User
Beiträge: 69
Registriert: Donnerstag 15. Februar 2007, 00:52

ich hab noch ne frage, erstell aber mal kein neuen thread :D

Ich hab ein Fenster in dem ich ein Passwort eingeben muss um mich zu authentifizieren.

Ich will mit der Enter-Taste (Return-Taste) den OK-Button auslösen, weil ich sonst immer mit der maus den button anklicken muss.

ich bekomm es aber nicht hin die return taste zu binden...

weiß da jemand weiter? ich hab auch schon in der tkinter reference von der new mexico tech gesucht aber nichts gefunden.

Bild


Code: Alles auswählen

    def pw(self):
        self.geometry("220x105")
        Label(self, text="Geben Sie Ihr Passwort zur Benutzung ein!").place(x=10, y=10)

        Label(self, text="Passwort :").place(x=30, y=45)

        self.en1=StringVar()
        en1=Entry(self, borderwidth= '2', show="♫", relief= 'groove',width=15,textvariable=self.en1)
        en1.place(x=85, y=45)  

        bu1=Button(self,text="OK", command=self.passwort_pruefen)
        bu1.place(x=80, y=75, width=30, height=20)

        bu2=Button(self,text="Abb.")#, command=self.abbrechen)
        bu2.place(x=120, y=75, width=30, height=20)
Edit (Leonidas): Thread geteilt. Das nächte mal selbst machen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

sorgenlos hat geschrieben:ich hab noch ne frage, erstell aber mal kein neuen thread :D
Wäre aber besser - dann kann man gezielter suchen und andere haben mehr davon.
sorgenlos hat geschrieben:weiß da jemand weiter? ich hab auch schon in der tkinter reference von der new mexico tech gesucht aber nichts gefunden.
Steht aber drin - allerdings erst ziemlich am Ende ...

Guckst du hier:

Code: Alles auswählen

import Tkinter as tk

def checkpw(event=None):
    pw = infield.get()
    infield.delete(0,"end")
    if pw != "sorgenlos":
        infield.insert(0,"Falsch")
        infield.config(bg="red")
    else:
        infield.insert(0,"Richtig")
        infield.config(bg="green")

root = tk.Tk()
infield = tk.Entry(root)
infield.pack()
button = tk.Button(root,text="Check",command=checkpw)
button.pack()
infield.focus_set()
root.bind("<Return>",checkpw)
root.mainloop()
Im übrigen ist dein Code überarbeitungswürdig. Unter anderem:
- Tkinter nicht mit * importieren
- Verabschiede dich vom place-Geometry-Manager und setze pack oder grid ein
Antworten