小编Chu*_* Li的帖子

如何识别在循环中创建的按钮?

我正在尝试使用 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)?

python tkinter minesweeper

1
推荐指数
1
解决办法
8300
查看次数

标签 统计

minesweeper ×1

python ×1

tkinter ×1