覆盖列表中的组件

时间:2015-03-28 01:51:36

标签: python tkinter

我必须制作一个二维列表来跟踪我正在制作的棋盘游戏中的矩形。

我已经完成了电路板的功能,并且我被告知为第二个列表编写以下内容以保存参考:

rect = [[None for i in range(n+1)] for j in range(n+1)]

rect[i][j] = canvas.create_rectangle(i*height/n,j*width/n,(i+1)*height/n,(j+1)*width/n,width=1,fill='red',outline='green')

有人能告诉我如何保存矩形的索引吗?当我print rect时,什么都没有出现?

1 个答案:

答案 0 :(得分:0)

请注意,在列表推导中,您只需创建一个完整的None嵌套列表,然后为ij 之后的最后一个值创建一个矩形列表理解。

相反,您应该将对create_rectangle 的调用置于列表理解中:

rect = [[canvas.create_rectangle(i * height / n, j * width / n, 
                                 (i+1) * height / n, (j+1) * width / n, 
                                 width=1, fill='red', outline='green')
         for i in range(n+1)] for j in range(n+1)]

这样,rect应包含多个矩形的ID,然后您可以使用这些ID修改这些矩形,例如:改变颜色。