Python 从tkinter条目小部件捕获文本
我正在尝试运行下面的脚本,以使用tkinter将用户输入的文本捕获到表单中Python 从tkinter条目小部件捕获文本,python,tkinter,tkinter-entry,Python,Tkinter,Tkinter Entry,我正在尝试运行下面的脚本,以使用tkinter将用户输入的文本捕获到表单中 from tkinter import * class Window(Frame): def __init__(self, master = None): Frame.__init__(self, master) self.master = master self.init_window() # create init window def in
from tkinter import *
class Window(Frame):
def __init__(self, master = None):
Frame.__init__(self, master)
self.master = master
self.init_window()
# create init window
def init_window(self):
self.master.title("Example Title")
self.pack(fill = BOTH, expand = 1)
#submit button
submitButton = Button(self, text = "submit", command = self.showEntry).grid(row = 6, column = 1, sticky = W, pady = 5)
# entry widgets
Label(self, text = "Firstname").grid(row = 0)
Label(self, text = "Surname").grid(row = 1)
Label(self, text = "Age").grid(row = 2)
Label(self, text = "Gender").grid(row = 3)
e1 = Entry(self)
e2 = Entry(self)
e3 = Entry(self)
e4 = Entry(self)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)
e4.grid(row=3, column=1)
# show entries
def showEntry(self):
txt = e1.get()
print("Firstname is %s" % txt)
root.destroy()
root = Tk()
root.geometry("400x300")
app = Window(root)
app.mainloop()
执行此操作时,会出现以下名称错误:
NameError:未定义名称“e1”
我是tkinter的新手,因此,如果您能帮助我们获取用户输入的文本,以及为什么会出现此错误,我们将不胜感激
谢谢这不是
tkinter
问题,而是OOP
问题
您必须使用self.
来创建存在于类中所有方法中的变量
self.e1 = Entry()
后来
self.e1.get()
目前,
e1
是局部变量,仅存在于init\u窗口中
这不是一个Tkinter问题;是Pythone1
在init\u窗口中是局部作用域。您可能需要一个实例变量。请始终将完整的错误消息(回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。这不是tkinter
问题,而是面向对象编程问题-您必须使用self.
才能在类中的其他方法中访问变量。顺便说一句:常见错误var=Widget().grid()
-这样您就可以将None
分配给var
,因为grid()
/pack()
/place()
返回None
。您必须在两行中执行var=Widget()
和var.grid()
或跳过变量Widget().grid()