【发布时间】:2021-12-28 17:05:38
【问题描述】:
我想知道是否有任何方法可以绕过在 tkinter 中的绑定中使用的回调函数中使用全局变量。
我指的是:
canvas = Canvas(root, width=500, height=500)
canvas.bind('<B1-Motion>', func)
func 现在是一些在拖动鼠标时触发的函数。我想要的是这样的:
canvas.bind('<B1-Motion>', func(arg))
结合:
def func(event, arg):
commands
我可以从https://docs.python.org/3/library/tkinter.html 看到一个参数,即事件本身,被赋予了回调函数,但不给这个方法以任何方式以不同的方式修改其回调似乎是浪费潜力。
也许我弄错了,一般来说这是不可能的,或者有其他方法可以替代绑定。
我基本上期待的是:
buttoname = Button(...,...,..., command = Lambda: func(arg))
如果有人有任何指点,将不胜感激。
问候
【问题讨论】:
-
lambda e: func(e, arg) -
太棒了!它有效,但为什么呢?
-
为什么它不能工作?这就是 lambda 的工作原理。
-
看,这就是答案
标签: python tkinter bind eventhandler