from tkinter import *
root = Tk()
fN = StringVar()
sN = StringVar()
age = StringVar()
yG = StringVar()
Label(root, text="First Name").grid(row=0, sticky=W, padx=4)
fName = Entry(root, width=50, textvariable=fN ).grid(row=0, column=1, sticky=E, pady=4)
Label(root, text="Surname").grid(row=1, sticky=W, padx=4)
sName = Entry(root, width=50, textvariable=sN).grid(row=1, column=1, sticky=E, pady=4)
Label(root, text="Age").grid(row=2, sticky=W, padx=4)
age = Entry(root, width=50, textvariable=age).grid(row=2, column=1, sticky=E, pady=4)
Label(root, text="Year Group").grid(row=3, sticky=W, padx=4)
yearGruop = Entry(root, width=50, textvariable=yG).grid(row=3, column=1, sticky=E, pady=4)
fName_1 = fN.get()
返回StringVar'fN'的值并存储它
def print_():
print (fName_1)
不打印名字输入框##
的内容
Button(root, text="Create account", command=print_).grid(row=4, column=1)
root.mainloop()
答案 0 :(得分:2)
现在,您在启动程序后立即获取内容,从而获得空值。
单击按钮后需要获取值,这意味着您应该将获得值的代码放在方法中。
def print_():
fName_1 = fN.get()
print (fName_1)
此外,在您的代码fName
中,sName
等都设置为None
,因为grid()
返回None
。如果您想稍后使用它们,则需要在单独的行上使用网格。
fName = Entry(root, width=50, textvariable=fN )
fName.grid(row=0, column=1, sticky=E, pady=4)
另一点是,你的代码中也不需要那些stringvar值。您可以使用get直接获取Entry的内容。
fName = Entry(root, width=50, textvariable=fN )
fName.grid(row=0, column=1, sticky=E, pady=4)
def print_():
print (fName.get())