2016-05-23 9 views
4

Ich habe eine Menüleiste in Python 3 erstellt, und ich frage mich, wie Sie Tastaturkürzel und Beschleuniger hinzufügen. Wie beim Drücken von "F" für das Dateimenü und so weiter.Tastaturkürzel mit tkinter in Python 3

Durch einige Umgrabungen fand ich das "Underline =" Attribut, aber es scheint nicht in Python 3 zu funktionieren. Es funktionierte nicht, als ich es versuchte, und die einzige Dokumentation, die ich dafür fand, war für früher Versionen von Python.

menubar = Menu(master) 

    filemenu = Menu(menubar, tearoff=0) 
    ..... 
    menubar.add_cascade(label="File", underline=0, menu=filemenu) 

Gibt es eine Möglichkeit, diese Dinge mit Tkinter in Python 3 zu tun?

Antwort

4

betrachten Lesen (http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm)

Sie Ihr Widget auf ein Ereignis an Ihre Funktion binden:

Keyboard-Ereignisse werden an das Widget gesendet, die derzeit die Fokus Tastatur besitzt. Sie können die focus_set Methode verwenden, um den Fokus auf ein Widget zu bewegen:

Capturing Tastaturereignisse

from Tkinter import * 

root = Tk() 

def key(event): 
    print "pressed", repr(event.char) 

def callback(event): 
    frame.focus_set() 
    print "clicked at", event.x, event.y 

frame = Frame(root, width=100, height=100) 
frame.bind("<Key>", key) 
frame.bind("<Button-1>", callback) 
frame.pack() 

root.mainloop() 

Wenn Sie dieses Skript ausführen, werden Sie feststellen, dass Sie klicken müssen, um in der Rahmen, bevor er irgendwelche Tastaturereignisse empfängt.

ich diese Anleitung folgte eine ctrl + f Bindung an eine meiner Funktionen vor einer Weile zu implementieren:

toolmenu.add_command(label="Search Ctrl+f", command=self.cntrlf) 
root.bind('<Control-f>', self.searchbox) 
def cntrlf(self, event): 
    self.searchbox() 

für die Datei-Menü, Sie könnten Umsetzung Beschleuniger in Betracht ziehen:

menubar.add_cascade(label="File", menu=fileMenu) 
fileMenu.add_command(label="Exit", command=quit, accelerator="Ctrl+Q") 
config(menu=menubar) 

für Menüoptionen nicht vergessen, ALT zu verwenden, gefolgt vom ersten Buchstaben des Optionsnamens

Datei Menü = ALT fo llowed von f Tool-Menü = ALT von t gefolgt und so weiter

Hoffnung dies liefert nützliche

+0

Es war nützlich, und ich habe Beschleuniger arbeiten, so danke! Meine Hauptfrage zu Shortcuts (wie zum Beispiel "F" drücken, um das Menü "Datei" zu öffnen) in Python 3 ist jedoch immer noch unbeantwortet. –

+0

nicht sicher "F" kann als Beschleuniger zugewiesen werden, ich überprüfe – glls

+0

Vergesst, ich bin ein Idiot. Ich habe vergessen, "alt" zuerst zu drücken, um die unterstrichene Buchstaben-Sache zu ermöglichen. Es funktioniert definitiv. –