我使用Tkinter制作GUI,允许在其中一个窗口中输入数据:
enterscore = Entry(window4, font="Helvatica 25", textvariable = newscore).pack()
我正在尝试创建一个按钮,将输入的数据保存为变量:
savebttn = Button(window4, text= "Save", width=5, height=2, font="Helvatica 25", command = savescore).pack()
其中:
def savescore():
score = enterscore.get()
但是,如果我运行该程序,它将返回错误消息:
AttributeError: 'NoneType' object has no attribute 'get'
我哪里错了?
答案 0 :(得分:3)
不要这样做:
enterscore = Entry(window4, font="Helvatica 25", textvariable = newscore).pack()
调用pack
会返回None
,而不是小部件。 tkinter
不支持这种方法链接。而是做:
enterscore = Entry(window4, font="Helvatica 25", textvariable = newscore)
enterscore.pack()
这构造了窗口小部件,并将enterscore
设置为指向它。然后调用enterscore.pack
与上面的效果相同,但eneterscore
指向正确的对象(小部件,而不是None
)
答案 1 :(得分:1)
pack
方法返回None
。您需要将创建Entry
的语句与打包的statemetn分开。
enterscore = Entry(window4, font="Helvatica 25", textvariable=newscore)
enterscore.pack()
savebttn
相同。