使用Tkinter画布创建形状

时间:2013-10-08 07:08:05

标签: python tkinter

如果我有一些列表创建包含'#','','X'和'O'的网格列表,我怎样才能使用Tkinter库在画布上将它们表示为不同的彩色方块?

我可以静态地为其中一个列表执行此操作,但不确定如何使其动态化以便我可以加载每个列表。

这是我希望在其上创建的画布:

self._canvas = Canvas(root, relief=SUNKEN, bg="black", width=300, height=300)
self._canvas.pack(side=TOP, expand=True, fill=BOTH)

1 个答案:

答案 0 :(得分:2)

我不确定你的问题是什么,但你可以像这样迭代你的网格:

DICT_COLOR = {'#':'red', 'X':'green', 'O':'yellow'}
SIZE_X = 300/len(grid[0])
SIZE_Y = 300/len(grid)
for i, line in enumerate(grid):
    for j, value in enumerate(line):
        self._canvas.create_rectangle(j*SIZE_X,
                                      i*SIZE_Y, 
                                      (j+1)*SIZE_X, 
                                      (i+1)*SIZE_Y, 
                                      fill=DICT_COLOR[value])