python - 右键单击 python 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)
解决方案
默认情况下,所有bind
事件都将参数传递给回调函数,因此要传递其他参数,您必须在函数开头提供一个额外参数,lambda
其中第一个参数将始终接收事件触发时的默认参数。在您的bind
函数x
中正在获取默认参数,并且y
正在获取它的假设。要解决这个问题,只需像这样添加另一个参数。
pole[x][y].bind('<Button-3>', lambda evt, x=x, y=y: r_click(x,y))
希望这有帮助。
推荐阅读
- python - 在 tensorflow 中读取 LZO 压缩的 csv 文件
- windows-ce - 我们如何在 Windows 10 中创建 Wince 6.0 设置?
- reporting-services - 将来自不同域林的用户添加到 SSRS 时遇到问题
- python - 从 Facebook 导入事件的问题
- php - 使用 pdo 而不是 mysqli 时 $_SESSION 中断
- lombok - Lombok 不适用于容易出错的情况
- recursion - 为什么在 F# 中使用递归函数而不是 `while true do`?
- c++ - PCL - 无法在 ubuntu 中为 people_pcd_prob.cpp 生成二进制文件
- haskell - Haskell 中的高效比特流
- json - 带有 Visual Studio 2017 dot net core 的 angular 4 应用程序。如何从 typescript 文件访问 appsetting.json 配置键