Python 从面向对象的tkinter获取值
我正在创建面向对象的tkinter应用程序,但我找不到从条目中获取值的方法Python 从面向对象的tkinter获取值,python,oop,tkinter,Python,Oop,Tkinter,我正在创建面向对象的tkinter应用程序,但我找不到从条目中获取值的方法 class App(tk.Frame): from verification import Verification validation = Verification() def __init__(self, parent, *args, **kwargs): tk.Frame.__init__(self, parent, *args, **kwargs) s
class App(tk.Frame):
from verification import Verification
validation = Verification()
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.parent = parent
self.email = tk.Entry(self).grid(column=1, row=4)
self.email_lb = tk.Label(self, text='Email: ', font='Helvetica 11').grid(column=0, row=4)
self.submit = tk.Button(self, text="Check", width=30, command = self.check_validity).grid(column=1, row=11)
def check_validity(self, *args):
email = self.email.get()
print(email)
但是当运行这个代码时,我得到了这个错误
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2032.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1895, in __call__
return self.func(*args)
File "C:\Users\kryst\PycharmProjects\covidForm\app.py", line 164, in check_validity
email = self.email.get()
AttributeError: 'NoneType' object has no attribute 'get'
有人知道如何解决这个问题吗?好的,这是一个非常常见的错误。创建tk.Entry时,需要执行以下操作: self.email=tk.Entryself.gridcolumn=1,row=4 它创建条目,然后立即调用其.pack方法。它存储任何内容。pack始终不向self.email返回任何内容。您要做的是: self.email=tk.Entryself self.email.gridcolumn=1,row=4
将self.email=tk.Entryself.gridcolumn=1,row=4更改为self.email=tk.Entryself;self.email.gridcolumn=1,row=4现在可以工作了,非常感谢!