AttributeError: 'NoneType' object has no attribute 'get' in tkinter

AttributeError: 'NoneType' object has no attribute 'get' in tkinter

我在 Python 使用 tkinter 编程时遇到问题,我的问题是 AttributeError: 'NoneType' object has no attribute 'get'。你能告诉我如何得到这个错误吗?

import ghasedak
from tkinter import *
root = Tk()
root.title('Dad')
root.geometry('700x600')
sms = ghasedak.Ghasedak('da3cd36817f7f4ce24cab83a9f11084bee9b74eb89f8f07a319564b7ab27e476')
def what():
    entryg = te.get()
    if entryg == 'w':
        sms.send({ 'message':'Dad wants water',  'receptor' : '09028435128',  'linenumber': '10008566' })
    elif entryg == 'n':
        sms.send({ 'message':'Dad wants nescafe',  'receptor' : '09028435128',  'linenumber': '10008566' })
    elif entryg == 's':
        sms.send({ 'message':'Dad wants Syrup',  'receptor' : '09028435128',  'linenumber': '10008566' })
    elif entryg == 't':
        sms.send({ 'message':'Dad wants tea',  'receptor' : '09028435128',  'linenumber': '10008566' })
    elif entryg == 'c':
        sms.send({ 'message':'Dad wants coffee',  'receptor' : '09028435128',  'linenumber': '10008566' })
    elif entryg == 'l':
        sms.send({ 'message':'Dad says please calm down',  'receptor' : '09028435128',  'linenumber': '10008566' })
tl = Label(root, text = 'What do you want?').grid(row = 0, column = 0)
te = Entry(root).grid(row = 0, column = 1)
tb = Button(root, text = 'submit', command = what).grid(row = 3, column = 1)
root.mainloop()

您需要使用 stringvar 而不是在输入框上使用 .get()

data = StringVar() #We use StringVar so that we can store the input entered by the user in the entry box
te = Entry(root,textvariable = data)
te.grid(row = 0, column = 1) #You should always grid,pack,place the object in a new line

现在在函数中:

def what():
    entryg = data.get()
    #[...]other code

您可以阅读有关 StringVar 的更多信息here