我正在努力构建一个简单的小文本编辑器,但我收到的错误是我无法弄清楚的。它与我在Tkinter中使用.get()函数有关。我使用的是python2.7。有人可以帮忙吗?以下是代码:
from Tkinter import *
def open_file():
user_file = open(user_input.get(), 'a')
file_contents = user_file.read()
text_box.insert(END, file_contents)
root = Tk()
user_input = Entry(root).pack(side=TOP)
text_box = Text(root).pack()
b1 = Button(root, text="open", command=open_file).pack(side=LEFT)
b2 = Button(root, text="save").pack(side=LEFT)
b3 = Button(root, text="quit", command=root.quit).pack(side=LEFT)
root.mainloop()
The error message reads:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
return self.func(*args)
File "/home/brandon/TkProjects/TextEditor.py", line 7, in open_file
user_file = open(user_input.get, 'a')
AttributeError: 'NoneType' object has no attribute 'get'
其中说我没有属性.get(),但我不明白为什么。我创建了一个名为user_input的Entry小部件。我尝试将它存储在一个变量中,但是它也没有用。请帮忙。
filename = user_input.get()
答案 0 :(得分:2)
之间存在很大差异
user_input = Entry(root).pack(side=TOP)
和
user_input = Entry(root)
user_input.pack(side=TOP)
由于pack函数返回None而不是self。这就是为什么你应该在两行中这样做,就像我在第二段代码中写的一样。
祝你好运。