首页 > 解决方案 > 查找在循环中创建的按钮 ID

问题描述

我以图像的形式创建了一个按钮网格。它目前是一个 5x5 网格。我要存储按钮的 id,以便我可以跟踪用户选择了哪些按钮,以便我可以突出显示它们的背景以显示它们被选中,或者保持它们处于活动状态,直到用户再次单击它们。

打印出buttonID列表给了我<class 'tkinter.Button'>

displayedList = images
buttonID = []
#create the grid here using rows and columns 
nrows = 5
ncols = 5
displayedList = images

for r in range(nrows):
    for c in range(ncols):
        
        randomNumber = random.randint(0, len(displayedList)- 1)
        tk.Button(padx=50, pady=50, image=displayedList[randomNumber]).grid(row = r, column=c) 
        buttonID.append(Button)

    displayedList.remove(displayedList[randomNumber])
displayedList = images ```



标签: pythontkinter

解决方案


您需要保存新按钮的按钮对象。

尝试这个:

 btn = tk.Button(padx=50, pady=50, image=displayedList[randomNumber])
 btn.grid(row = r, column=c) 
 buttonID.append(btn)

您应该存储按钮对象而不仅仅是 ID,以便以后更容易引用它们。


推荐阅读