我在右键单击按钮后传递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)
所有bind
事件默认情况下都会将参数传递给回调函数,因此要传递其他参数,您必须在lambda
函数的开头提供一个额外的参数,其中第一个参数将始终在任何时候都接收默认参数事件触发。在bind
函数中,x
正在获取默认参数,y
正在获取其假定值。要解决此问题,只需添加另一个参数即可。
pole[x][y].bind('<Button-3>', lambda evt, x=x, y=y: r_click(x,y))
希望这有所帮助。