我的复选框(admin_check)在切换时没有在check_var中设置值。当我删除根窗口时它工作正常但我无法删除,因为它是必要的。
def c():
print(check_var.get())
root=Tk()
#initially it must be minimised not to be open until login by user
root.quit()
inst_window=Tk()
#instruction and login window
login_frame=Frame(inst_window,bg="lightpink",height=100,width=100)
check_var=StringVar()
admin_check=Checkbutton(login_frame,text="Adm",variable=check_var, onvalue='admin',offvalue='user',command=c)
login=Button(login_frame,text="login",command=c)
admin_check.grid(row=0,columnspan=2)
login.grid(row=1,columnspan=2)
login_frame.pack()
login_frame.pack_propagate(0)
root.mainloop()
答案 0 :(得分:0)
正如Brian Oakley所说,你不能有两个Tk()
,而是使用Toplevel()
更改inst_window=Tk()
至inst_window=Toplevel(root)
完成后,没有其他问题,代码运行正常。您可能还希望将复选框的默认设置设置为未选中,您可以执行以下操作:
check_var.set("user")