AttributeError: 'NoneType' 对象没有属性 'delete'

新手上路,请多包涵

我遇到了这个问题,我不明白为什么。

我从我的应用程序中提取了我的代码并制作了这个测试代码,这样你就不必通过一堆垃圾来了解我在问什么。

我有这个在其他代码中工作。但是在比较了两者之后,我终究无法弄清楚这一点。

在此应用程序中,我收到错误“AttributeError:‘NoneType’对象没有属性‘delete’”。

 import Tkinter as tk

def main():
    mainWindow = tk.Tk()
    v = tk.StringVar()
    entryBox = tk.Entry(mainWindow, textvariable=v).grid(column=0, row=1)
    def test():
        entryBox.delete(0,20)
    testButton = tk.Button(mainWindow, text='Go!', command=test, padx=10).grid(row=2, column=0)
    tk.mainloop()
main()

原文由 Phil J Fry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 489
2 个回答

在这一行中:

 entryBox = tk.Entry(mainWindow, textvariable=v).grid(column=0, row=1)

grid 不返回任何东西,所以 entryBox 是 None ,它没有 delete 方法。 You have to set entryBox to tk.Entry(mainWindow, textvariable=v) then call the grid method on entryBox

原文由 Tom Smilack 发布,翻译遵循 CC BY-SA 3.0 许可协议

entryBox = tk.Entry(mainWindow, textvariable=v).grid(column=0, row=1)

#而不是在同一行中使用你可以这样做

entryBox = tk.Entry(mainWindow, textvariable=v) entryBox.grid(column=0, row=1)

原文由 Suraj Tiwari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题