python - Python / TkInter - 从for循环制作的按钮网格中查找哪个按钮被按下的方法
问题描述
我正在尝试使用 Tkinter 和 Python 进行一个非常简单的 Othello 迭代并有一个想法,但是我不知道一种方法来检索按下哪个按钮(通过整数?)。我使用了一个按钮网格
for x in range(8):
for y in range(8):
btn = Button(frame)
buttons.append(btn)
btn.grid(column=x, row=y, sticky=N+S+E+W)
btn.config(bg='green2')
我计划在按下时配置按钮,并通过添加和减去按钮的值来检查所有 8 个方向,以找到左侧(-8)、右上角(+7)等按钮。我很新编码并希望得到任何反馈,谢谢。
解决方案
欢迎来到 SO!
您可以在 tkinter 中的任何小部件上创建绑定,语法为:
widget.bind(sequence, func, add)
因此,对于您的示例,您可以为每个按钮创建一个绑定,并传递 x 和 y 值作为参数来跟踪目标函数中的哪个按钮。像这样的东西:
btn.bind("<Button-1>", lambda x=x, y=y: print(x, y))
这将打印网格中每个按钮的坐标,然后您可以将打印语句替换为您想要的任何功能。
可以在此处找到所有绑定的列表
推荐阅读
- http - 如何在 Cloudflare Workers 中不丢失 301 https 重定向的引用值
- python-3.5 - Python请求SyntaxError:无效的语法
- python - 通过子进程关闭PC后会发生什么?
- java - 在 opencv 4.1.0 中无法解析 DescriptorExtractor 和 FeatureDetector 的导入
- javascript - How to preload script using integrity and crossorigin
- reactjs - React 不会渲染多个组件
- java - 如何防止 Eclipse 格式化程序在行注释开头插入空格
- javascript - TouchableOpacity 不显示图像
- php - 如何按月份或年份计数和分组,月份为零
- python - ModuleNotFoundError: No module named 'xyz'" 在执行 pip install xyz 之后