2017-08-16 17 views
0

Ich habe einen Beispielcode in Python 2.7 geschrieben. Ich habe eine Schaltfläche erstellt, und ich möchte diese Schaltfläche mit der Taste "F2" der Tastatur verknüpfen. Ich möchte auch, dass, wenn ich auf die Schaltfläche "Click me" klicke, ich dasselbe Ergebnis möchte. Dieser Code funktioniert nicht einwandfrei. Wenn jemand eine Idee hat, sag es mir. Ich habe diese Frage gestellt zu wissen, wie andere Tasten auf der Tastatur zu verwenden, wie F1 bis F12 oder Alt usw.Ereignisbindung mit Widget in Tkinter in Python

from Tkinter import * 

root = Tk() 

def callback(event): 
    print "hi" 

b = Button(root, text="Click me") 
b.pack() 
b.bind("<F2>", callback) 

root.mainloop() 
+0

Ich bin nicht in der Lage, Ihre Frage zu verstehen. Wenn Sie die Taste drücken, möchten Sie, dass die gleiche Funktion wie die F2-Taste ausgeführt wird. –

+0

Ja, ich möchte das gleiche Ergebnis, wenn klicken Sie auf den "klick mich" Knopf und wenn ich "F2" Knopf meiner Tastatur drücke. –

Antwort

1

Dies könnte funktionieren. Ich konnte deine Frage nicht genau stellen, aber das würde das Problem lösen, das ich vermute.

Sie müssen den Schlüssel an die Funktion vor oder nach dem Hinzufügen der Schaltfläche zu root binden.

+0

Danke, es funktioniert gut. Aber kannst du mir bitte sagen, warum du die "root" mit "F2" Taste der Tastatur verbunden hast? Warum hast du nicht "b" mit der "F2" -Taste der Tastatur verbunden? –

1

prüft auf diese Frage die Antwort aus: Call the same function when clicking the Button and pressing enter

Das Codebeispiel er helfen gibt sollte Sie auch mit Ihrem Code. Neben dem b.pack() Befehl, der wahrscheinlich nach dem Bind-Aufruf sein muss, sollte Ihre Schaltfläche einen Befehl zugeordnet haben: b = Button(root, text="Click Me", command=callback)