如何从文件中将网格加载到tkinter

时间:2015-11-29 16:23:27

标签: python list 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网格。

此外,我正在寻找一种更加pythonic的方式来代码。

最后,感谢阅读并试图帮助我。

1 个答案:

答案 0 :(得分:1)

()是一个列表。您无法使用[]将其称为函数。如果是二维列表,则必须使用Words[some_index] - Words[some_index][other_index]gridLabel = Label(...).grid(...)

-

BTW:None会将gridLabel分配给grid(...),因为None始终会返回gridLabel

如果您在代码的其他部分不需要gridLabel =,则可以跳过Label(...).grid(...)

gridLabel

如果您需要gridLabel = Label(...) gridLabel.grid(...) ,请执行

WHERE employee.employee_ID = orderInfo.employee_ID and employee.employee_ID = @employee_ID