【问题标题】:TkInter button coordinates on a grid网格上的 TkInter 按钮坐标
【发布时间】:2016-06-17 02:38:26
【问题描述】:
我目前正在使用 TkInter 制作一个 GUI,该 GUI 由一个内置在 for 循环中的网格组成,所有按钮都有 1 个变量(每个循环都会更新)。
我想知道如何获得我按下的任何按钮的坐标。 (例如,当我按下时,按钮给出了它在网格上的坐标)我使用了 grid_info 但它只获取最后一个创建按钮的信息。
谢谢你帮助我:)
【问题讨论】:
标签:
python
user-interface
button
tkinter
grid
【解决方案1】:
您可以将行和列传递给与函数关联的命令。两种最常见的方法是使用 lambda 或 functools.partial。
这是一个使用 lambda 的示例:
import tkinter as tk
def click(row, col):
label.configure(text="you clicked row %s column %s" % (row, col))
root = tk.Tk()
for row in range(10):
for col in range(10):
button = tk.Button(root, text="%s,%s" % (row, col),
command=lambda row=row, col=col: click(row, col))
button.grid(row=row, column=col, sticky="nsew")
label = tk.Label(root, text="")
label.grid(row=10, column=0, columnspan=10, sticky="new")
root.grid_rowconfigure(10, weight=1)
root.grid_columnconfigure(10, weight=1)
root.mainloop()