从 tkinter 条目小部件捕获文本
Capture Text from tkinter entry widget
我正在尝试 运行 下面的脚本使用 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 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:
NameError: name 'e1' is not defined
我是 tkinter 的新手,所以如果能帮助我了解如何获取用户输入的文本,以及为什么会出现此错误,我们将不胜感激。
谢谢
这不是 tkinter
而是 OOP
的问题。
您必须使用 self.
创建存在于 class
中所有方法中的变量
self.e1 = Entry()
以后
self.e1.get()
目前e1
是局部变量,只存在于init_window
我正在尝试 运行 下面的脚本使用 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 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:
NameError: name 'e1' is not defined
我是 tkinter 的新手,所以如果能帮助我了解如何获取用户输入的文本,以及为什么会出现此错误,我们将不胜感激。
谢谢
这不是 tkinter
而是 OOP
的问题。
您必须使用 self.
创建存在于 class
self.e1 = Entry()
以后
self.e1.get()
目前e1
是局部变量,只存在于init_window