python - 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()
解决方案
拥有多个实例Tk
变得非常复杂,因为每个实例都创建了一个单独的 tcl 解释器。这会导致奇怪的效果,就像您在此处看到的那样。您几乎总是想使用Toplevel
小部件。
推荐阅读
- gitlab-ci - 带有扭锁的 Ci/CD 管道中的 Docker 图像扫描
- smtp - 带有附件的 Erlang SMTP 客户端
- android - 编号 1 下的 Linechart 将在 MPChart 处生成一条直线
- java - 验证字符串列表中的自定义排序
- python - Antlr4 中的 C-Grammar 在 `int main()` 上引发错误`extraneous input 'int'`
- python - 使用 python 使用来自其他 csv 文件的信息在 csv 文件中创建列
- jquery - ASP.NET Webforms嵌套Gridview单击父gridview行不显示子gridview
- autodesk-forge - Forge 模型查看器中第一人称视图中的操纵杆移动太快
- css - 避免重叠的 CSS 网格元素
- postgresql - PostgresSQL - 分析 cpe23Uri