打印时,Python参数返回“ <class'tkinter.StringVar'>”

时间:2019-09-11 16:03:01

标签: python python-3.x tkinter

当尝试打印参数时,它返回类'tkinter.StringVar'

def input_staff(name, f_date, t_date):

    print(name)

def user_staff():
    master.withdraw()
    staffgui = Toplevel()

    staffgui.title("Staff")

    name = StringVar
    f_date = StringVar
    t_date = StringVar

    Label(staffgui, text="Name").grid(row=0, column=0)
    Entry(staffgui, textvariable=name).grid(row=0, column=1)

    Label(staffgui, text="From date").grid(row=1, column=0)
    Entry(staffgui, textvariable=f_date).grid(row=1, column=1)

    Label(staffgui, text="To date").grid(row=2, column=0)
    Entry(staffgui, textvariable=t_date).grid(row=2, column=1)

    Button(staffgui, text="Submit", command=partial(input_staff, name, f_date, t_date)).grid(row=3, column=0)

我正在尝试从其他函数中的变量调用参数。

我尝试使用 partial lambda ,但是它们都不起作用。

谢谢

1 个答案:

答案 0 :(得分:2)

您需要实例化控制变量:

name = StringVar()
f_date = StringVar()
t_date = StringVar()

诸如StringVar之类的控制变量是一个存储值的对象,但与简单的字符串变量不同,您需要使用get方法来访问该值:

def input_staff(name, f_date, t_date):
    print(name.get())