2016-04-26 3 views
1

Ich muss den Befehl Button-Klick an eine Funktion in Python binden. Ich habe bereits die Flag Funktion mit der rechten Maustaste gebunden, aber das funktioniert nur, wenn Sie mit der rechten Maustaste klicken. Da ich den Großteil meines Codes auf einem Laptop schreibe, ist das furchtbar ungünstig. Hier ist, was ich derzeit haben:Python Tkinter Befehl Klicken Sie auf

# set up the mouse click listeners 
    self.bind('<Button-1>',self.expose) 
    self.bind('<Button-2>',self.flag) 
    #this is where I want to bind self.flag to command click 

Ich möchte verwenden self.bind wenn möglich, und einfach Befehl Klick auf self.flag binden. Ist es möglich, dies zu tun?

Antwort

0

Sie können einfach verwenden:

self.bind("<Command-Button-1>",self.flag) 

Dies kann zusätzlich zu <Button-2> getan werden und Sie können auch <Control-Button-1> für Kompatibilität binden wollen.

Ich würde normalerweise eine Verknüpfung zu http://infohost.nmt.edu/tcc/help/pubs/tkinter/event-modifiers.html aber es scheint im Moment zu sein, nach unten, im Grunde gibt es ein paar Modifikatoren, die mit Button oder Key in Kombination verwendet werden können:

Alt  True when the user is holding the alt key down. 
Any  This modifier generalizes an event type. For example, the event pattern '<Any-KeyPress>' applies to the pressing of any key. 
Control True when the user is holding the control key down. 
Double Specifies two events happening close together in time. For example, <Double-Button-1> describes two presses of button 1 in rapid succession. 
Lock  True when the user has pressed shift lock. 
Shift True when the user is holding down the shift key. 
Triple Like Double, but specifies three events in rapid succession. 

So könnte man zum Beispiel binden Wenn Ihr Programm so aufwendig sein muss.

+0

Danke, es hat funktioniert! Ich habe auch Shift-Klick für Super-Kompatibilität, sowie Kontrolle und Befehl hinzugefügt. Weil ich paranoid bin. –

+0

Schön, es ist auch erwähnenswert, dass auf Unix (Mac und Linux usw.) '' ist Rechtsklick und '' ist die mittlere Maustaste ** aber auf Windows-Computern sind sie geschaltet. ** So können Sie auch wollen zu binden '' auch wenn Sie wirklich paranoid sind (oder überprüfen Sie ['sys.platform'] (https://docs.python.org/3/library/sys.html#sys.platform)) –

+0

Auch @JosiahSchmidt I nehme an, du akzeptierst meine Antwort (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)? –