2015-11-29 4 views
0

Я делаю программу, похожую на игру с памятью, где я загружаю файл и помещаю его в сетку в tkinter.Как загрузить сетку в tkinter из файла

я в настоящее время возникают проблемы с этой частью моего кода:

with open("Words.txt","r") as tenWordFile: 
    for count in range(10): 
     tenWordLine = tenWordFile.readline() 
     tenWordLine = tenWordLine.strip("\n") 
     Line = tenWordLine.split("\t") 
     Words.append(Line[0]) 
     for r in range (3): 
      for c in range (3): 
       gridLabel = Label(app, text = Words (r,c),borderwidth = 1).grid(row=r,column=c) 
     app.mainloop() 

Когда я запускаю свою программу, я получаю сообщение об ошибке:

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "E:\python\lib\tkinter\__init__.py", line 1487, in __call__ 
    return self.func(*args) 
    File "E:\computer science\Controlled assessment 2\new cs.py", line 33, in tenWordGame 
gridLabel = Label(app, text = Words (r,c),borderwidth = 1).grid(row=r,column=c) 
TypeError: 'list' object is not callable 

Я ищу решение для распечатки 3x3 сетка со случайными словами из файла слов.

Кроме того, я ищу еще более питонический способ для этого кода.

И наконец, спасибо за чтение и попытку помочь мне.

ответ

1

Words есть список. Вы не можете называть его функцией, используя (). Вы должны использовать [] - Words[some_index] или Words[some_index][other_index], если это двумерный список.

-

КСТАТИ: gridLabel = Label(...).grid(...) будет присваивает None к gridLabel, потому что grid(...) всегда возвращает None.

Если вам не нужно gridLabel в другой части кода вы можете пропустить gridLabel =

Label(...).grid(...) 

Если вам нужно gridLabel затем сделать

gridLabel = Label(...) 
gridLabel.grid(...) 
+0

спасибо, хотя, что бы я поставил в [ some_index]? –

+0

, вероятно, 'r' или' c' - вы являетесь автором этой программы;) – furas

+0

любым способом я мог бы добавить и r и c, потому что я могу только добавить один, я попробовал его с обоими и получил ошибку, когда python сообщает мне, что ответ должен быть целым, а не кортежем. –

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