右键点击python tkinter按钮后传递参数

时间:2020-05-14 21:44:46

标签: python button tkinter

我在右键单击按钮后传递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)

1 个答案:

答案 0 :(得分:0)

默认情况下,所有bind事件都会将一个参数传递给回调函数,因此,要传递其他参数,您必须在lambda函数的开头添加一个额外的参数,其中第一个参数将始终事件触发时,将接收默认参数。 bind函数中的x中的默认参数,y中的默认参数。要解决此问题,只需添加另一个参数即可。

pole[x][y].bind('<Button-3>', lambda evt, x=x, y=y: r_click(x,y))

希望这会有所帮助。