首页 > 解决方案 > VarString.get() 返回一个空字符串

问题描述

我是一个初学者,我正在制作一个登录系统(只是为了练习)。我正在使用 tkinter 开发一个简单的 UI。问题是,当我使用来自另一个根 (main_screen) 的按钮调用第二个根 (sign_in root) 时,我尝试在条目中键入一些值并分配给它们的 StringVars,它们只返回一个空字符串“”

    def main_screen():

        root=Tk()
        user=StringVar()
        pas=StringVar()

        btn2=Button(root,text='Sign-In',command=sign_in_screen)
        btn2.place(x=125,y=160)

        root.mainloop()

   def sign_in_screen():
        root1=Tk()
        newuser=StringVar()
        newpas=StringVar() 

        ent3=Entry(root1,width=28,textvariable=newuser) 
        ent3.place(x=100,y=50)

        ent4=Entry(root1,width=28,textvariable=newpas,show="*")
        ent4.place(x=100,y=100)

        btn3=Button(root1,text='Sign-In',command=lambda:register(newuser.get(), newpas.get()))
        btn3.place(x=50,y=160)

        root1.mainloop()

    main_screen()

标签: pythonpython-3.xtkinter

解决方案


拥有多个实例Tk变得非常复杂,因为每个实例都创建了一个单独的 tcl 解释器。这会导致奇怪的效果,就像您在此处看到的那样。您几乎总是想使用Toplevel小部件。


推荐阅读