Lambda变量赋值(用于Tkinter命令回调)

时间:2016-03-25 14:40:20

标签: python lambda tkinter ttk

我试图更多地了解Tkinter,并在网上看到了这段代码

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()

当我运行这个程序时,在人民币被按下时将鼠标拖到屏幕上,它给了我在“B3-Motion”绑定中应该提到的坐标。

在这种情况下,临时变量“e”究竟是指什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

当您将函数绑定到具有SELECT * FROM `table` WHERE date_field < DATE_SUB(CURDATE(),INTERVAL 2 YEAR); 的事件时,tkinter将始终将参数传递给函数,该函数在调用函数时表示该事件。通常,此名称为widget.bind(...),但有时缩写为event

事件对象包含有关事件的信息,例如接收事件的窗口小部件,事件发生时光标的x / y坐标以及其他有用信息。

您可以在此处详细了解该对象:http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm