Python / TkInter-从for循环所创建的按钮网格中查找哪个按钮被按下的方法

问题描述 投票:0回答:1

我正在尝试使用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)等的按钮。我对编码非常陌生,希望获得任何反馈,谢谢。

python button tkinter grid othello
1个回答
0
投票

欢迎您!您可以在tkinter中的任何元素上创建绑定,语法为:

tkinterElement.bind(sequence, func, add)

因此,在您的示例中,您可以为每个按钮创建一个绑定,并传递x和y值作为参数,以跟踪目标函数中的哪个按钮。像这样的东西:

btn.bind("<Button-1>", lambda x=x, y=y: print(x, y))

这将打印网格中每个按钮的坐标,然后您可以将打印语句替换为所需的任何功能。

可以找到所有绑定的列表here

© www.soinside.com 2019 - 2024. All rights reserved.