2013-10-08 100 views
0

如果我有幾個創建包含'#','','X'和'O'的網格的列表的列表,我怎麼能用Tkinter庫來表示它們是不同顏色的在畫布上的正方形?用Tkinter canvas創建形狀

我可以爲其中一個列表靜態地執行此操作,但我不確定如何使其成爲動態的,以便我可以加載每個列表。

這是我想創建它在畫布上:

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

回答

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]) 
+0

我我試圖打開一個包含這些字符的文本文件,將它們轉換爲列表,如[['#','#'],['X','#'],['','O'] ]並將其顯示爲畫布上的網格。 – user2330621

+0

所以你的問題是如何從文本文件中獲取列表的列表?如果是這樣,你能提供一個這樣的文件的例子嗎? – Yoann

+0

我的問題是如何獲取呈現在畫布上的列表清單。我有麻煩,因爲畫布是在一個類(gui)中定義的,而在另一個類中則是列表。 – user2330621