如何解决我收到AttributeError:“ NoneType”对象的python简单GUI程序没有属性“ get”
我在ButtonClick方法内的任何函数都遇到属性错误。请帮助纠正此问题。
import tkinter as tk
from tkinter import *
root = tk.Tk()
enter = tk.Entry(root,width = 35,borderwidth = 5).grid(row = 0,column = 0,columnspan = 3,padx =10,pady = 10)
def ButtonClick(number):
print(number)
current = enter.get()
print(current)
# enter.delete(0,END)
# enter.insert(0,current + number)
button1 = tk.Button(root,text="1",bg="yellow",padx = 40,pady= 20,command=lambda: ButtonClick(1)).grid(row = 1,column = 0)
root.mainloop()
解决方法
python shell使实验变得容易。假设错误是由于enter
造成的,我刚刚将代码的第一部分粘贴到了shell中。
>>> import tkinter as tk
>>> from tkinter import *
>>>
>>> root = tk.Tk()
>>>
>>> enter = tk.Entry(root,width = 35,borderwidth = 5).grid(row = 0,column = 0,columnspan = 3,padx =10,pady = 10)
>>> repr(enter)
'None'
是的,它的None
。这很典型。对象方法通常不返回自己的对象。它便于方法链接,但是大多数对象不是为此而设计的。只需执行示例和教程显示的内容,然后将其放在单独的一行即可。
import tkinter as tk
from tkinter import *
root = tk.Tk()
enter = tk.Entry(root,borderwidth = 5)
enter.grid(row = 0,pady = 10)
def ButtonClick(number):
print(number)
current = enter.get()
print(current)
# enter.delete(0,END)
# enter.insert(0,current + number)
button1 = tk.Button(root,text="1",bg="yellow",padx = 40,pady= 20,command=lambda: ButtonClick(1)).grid(row = 1,column = 0)
root.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。