我在右键单击按钮后传递2个整数时遇到问题。这是我的代码
def r_click(x,y):
print(x,y)
for x in range(m):
pole.append([])
for y in range(n):
pole[x].append(Button(game_window,width='50',height='40',image=photo,command=lambda x=x, y=y: l_click(x,y)))
pole[x][y].bind('<Button-3>',lambda x=x, y=y: r_click(x,y))
pole[x][y].grid(row=x, column=y)
答案 0 :(得分:0)
默认情况下,所有bind
事件都会将一个参数传递给回调函数,因此,要传递其他参数,您必须在lambda
函数的开头添加一个额外的参数,其中第一个参数将始终事件触发时,将接收默认参数。 bind
函数中的x
中的默认参数,y
中的默认参数。要解决此问题,只需添加另一个参数即可。
pole[x][y].bind('<Button-3>', lambda evt, x=x, y=y: r_click(x,y))
希望这会有所帮助。