2016-03-25 5 views
1

ich ein bisschen mehr über Tkinter zu lernen versuche und kam in diesem Code onlineLambda Variablenzuweisung (für Tkinter Befehl Rückrufe)

import Tkiner 
import ttk 
root = Tk() 
l =ttk.Label(root, text="Starting...") 
l.grid() 
l.bind('<Enter>', lambda e: l.configure(text='Moved mouse inside')) 
l.bind('<Leave>', lambda e: l.configure(text='Moved mouse outside')) 
l.bind('<1>', lambda e: l.configure(text='Clicked left mouse button')) 
l.bind('<Double-1>', lambda e: l.configure(text='Double clicked')) 
l.bind('<B3-Motion>', lambda e: l.configure(text='right button drag to %d,%d' % (e.x, e.y))) 
root.mainloop() 

Als ich dieses Programm lief, und zog meine Maus über den Bildschirm, während der RMB wurde gedrückt, es gab mir die Koordinaten, wie es in der "B3-Motion" -Bindung erwähnt werden soll.

Was genau macht die temporäre Variable „e“ verweisen in diesem Szenario?

Danke!

+0

Es ist nur das erste Argument der Funktion - in diesem Fall der Fall, dass Tkinter sendet, wenn Sie auf eine Schaltfläche klicken. – Carpetsmoker

+0

[Unter der Event-Attribute] (http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm) – Lafexlos

Antwort

2

Wenn Sie eine Funktion auf ein Ereignis mit widget.bind(...) binden, tkinter wird in ein Argument an die Funktion übergeben immer, der das Ereignis darstellt, wenn es die Funktion aufruft. Typischerweise wird dies genannt event, aber manchmal als e abgekürzt.

Das Ereignisobjekt hat Informationen über das Ereignis, wie zum Beispiel die das Ereignis empfängt widget, das x/y-Koordinate des Cursors, wenn das Ereignis aufgetreten ist, und andere nützliche Informationen.

Sie können hier ein wenig mehr über dieses Objekt lesen: http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm .

+0

Vielen Dank für die Hilfe: D – LeroyJD