我正在用tkinter编写一个简单的3d模拟器,在通过绑定到事件的函数传递参数时遇到了一个问题。你知道吗
我的职能是
def left(event):
cam1 = 0
cam2 = 0
def render( cam1, cam2):
w.delete("all")
cam1 = cam1 + 5
cam2 = cam2 + 2
lol = 0
w.create_rectangle(10+cam1,10+cam1,190+cam1,190+cam1)
w.create_rectangle(40+cam2,40+cam2,160+cam2,160+cam2)
w.create_line(10+cam1,10+cam1,40+cam2,40+cam2)
w.create_line(40+cam2,160+cam2,10+cam1,190+cam1)
w.create_line(160+cam2,160+cam2,190+cam1,190+cam1)
w.create_line(190+cam1,10+cam1,160+cam2,40+cam2)
w.after(10,render(cam1,cam2))
我希望每次调用函数时,cam1和cam2不能为0,但它不会让我在事件中传递更多参数,我使用
w.bind("<Right>", right)
把它绑起来
after
调用不正确。你必须给它一个函数的引用。可以提供其他参数。在您的情况下:至于绑定,最常见的解决方案是使用
lambda
或functools.partial
。例如:这个问题的变体在stackoverflow上被问了几十次。请尝试在该站点中搜索
[tkinter] bind argument
。你的问题可能应该标记为一个重复的问题,但很难知道哪个问题是最好的原始问题。你知道吗相关问题 更多 >
编程相关推荐