2013-10-08 5 views
0

Если у меня есть несколько списков списков, которые создают сетки, содержащие «#», «», «X» и «O», как я могу использовать библиотеку Tkinter для представления их как разных цветных квадраты на холсте?Создание фигур с холстом Tkinter

Я могу сделать это статически для одного из списков, но я не уверен, как сделать его динамичным, чтобы я мог загружать в каждый список.

Это холст, который я хотел бы создать его на:

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

I я пытаюсь открыть текстовый файл, содержащий эти символы, преобразовать их в список списков, таких как [['#', '#'], ['X', '#'], ['', 'O'] ] и отобразить это как сетку на холсте. – user2330621

+0

Итак, ваша проблема заключается в том, как получить список списков из текстового файла? Если да, не могли бы вы привести пример такого файла? – Yoann

+0

Моя проблема заключается в том, как получить список списков, представленных на холсте. У меня возникают проблемы, так как холст определяется в одном классе (gui), а список - в другом. – user2330621

Смежные вопросы