tkinter 窗口复选框操作



我的复选框(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()

正如Brian Oakley所提到的,你不能有两个Tk(),而是使用Toplevel()

更改inst_window=Tk()

inst_window=Toplevel(root)

完成此操作后,就没有其他问题,并且代码工作正常。您可能还希望将复选框的默认值设置为未选中,您可以这样做:

check_var.set("user")

最新更新