如何从tkinter中按下的按钮获取网格信息?
问题内容:
我需要在Python 2.7中使用Tkinter创建按钮表,该表具有n
行和n
列,并且在右下角没有按钮。
问题是,当我按下按钮的位置时,我需要创建可用空间并将该按钮移动到之前为空的空间,而我不能这样做,因为我不知道如何获取网格(x和y轴)
)的信息以使用它来创建可用空间。
这是我当前的代码:
from Tkinter import *
#Input:
n=int(raw_input("Input whole positive number: "))
L = range(1,n+1)
k = n
m = n
#Program:
root = Tk()
for i in L:
for j in L:
frame = Frame(root)
frame.grid(row = i, column = j)
if j == k and i == m:
pass
else:
button = Button(frame)
button.grid(row = i, column = j)
root.mainloop()
这将是这样的,在这里我想获得按钮的发车位置,并用它来改变k
和m
变量,以使空的空间位置,按下的按钮了。
问题答案:
您可以通过对按钮使用lambda表达式来传递行和列:
button = Button(..., command=lambda row=i, column=j: doSomething(row, column))