<p>我正在尝试实现一个叫做“五连冠”的游戏。
我创建了一个15×15的列表来放置按钮。(我使用了range(16),因为我还需要一行和一列来显示行号和列号)</p>
<p>我希望我的实现就像当一个按钮被点击时,它会变成一个标签。
但我不知道用户点击了哪个按钮。在</p>
<p>我怎样才能实现这一点呢?谢谢!在</p>
<pre><code>from tkinter import *
root=Tk()
root.wm_title("Five In a Row")
buttonlst=[ list(range(16)) for i in range(16)]
chess=Label(root,width=2,height=2,text='0')
def p(button):
gi=button.grid_info()
x=gi['row']
y=gi['column']
button.grid_forget()
chess.grid(row=x,column=y)
buttonlst[x][y]=chess
for i in range(16):
for j in range(16):
if i==0:
obj=Label(root,width=2,text=hex(j)[-1].upper())
elif j==0:
obj=Label(root,width=2,text=hex(i)[-1].upper())
else:
obj=Button(root,relief=FLAT,width=2,command=p(obj))
obj.grid(row=i,column=j)
buttonlst[i][j]=obj
root.mainloop()
</code></pre>
<p>还有一个类似的问题<a href="https://stackoverflow.com/questions/28761697/how-to-determine-which-button-is-pressed-out-of-button-grid-in-python-tkinter">How to determine which button is pressed out of Button grid in Python TKinter?</a>。但我不太明白。在</p>