我正在尝试使用 tkinter 在 python 上编写扫雷游戏。我首先使用 10x10 的二维列表创建了一个按钮网格。然后我使用循环创建了每个按钮,这样我就不必手动创建每个按钮并将它们夹在上面。
self.b=[[0 for x in range(1,12)] for y in range(1,12)] #The 2 dimensional list
for self.i in range(1,11):
for self.j in range(1,11):
self.b[self.i][self.j]=tkinter.Button(root,text = (" "),command = lambda: self.delete()) # creating the button
self.b[self.i][self.j].place(x=xp,y=yp) # placing the button
xp+=26 #because the width and height of the button is 26
yp+=26
xp=0
Run Code Online (Sandbox Code Playgroud)
基本上我希望按钮在按下时消失。问题是我不知道如何让程序专门删除我按下的按钮,因为所有按钮都完全相同。创建删除函数时:
def delete(self):
self.b[???][???].destroy()
Run Code Online (Sandbox Code Playgroud)
我不知道如何让程序知道用户按下了哪个按钮,所以它可以删除那个特定的按钮。
问题: 有没有办法让每个按钮都有一些独特的东西,让它与其他按钮区分开来?说给每个按钮分配一个特定的坐标,那么当按钮(2,3)被按下时,数字2和3被传递给删除函数,所以删除函数可以删除按钮(2,3)?