简体   繁体   English

tkinter窗口复选框操作

[英]tkinter window checkbox operation

My check box(admin_check) is not setting values in check_var while being toggled. 我的复选框(admin_check)在切换时未在check_var中设置值。 When i remove root window it works fine but i can not remove since its necessary. 当我删除根窗口时,它工作正常,但由于必要而无法删除。

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()

As Brian Oakley mentioned, you cannot have two Tk() , Instead use Toplevel() 正如Brian Oakley所述,您不能有两个Tk() ,而应使用Toplevel()

Change inst_window=Tk() 更改inst_window=Tk()

To inst_window=Toplevel(root) inst_window=Toplevel(root)

Once you've done that, there are no other problems and the code works fine. 完成此操作后,就没有其他问题了,代码可以正常工作。 You may also want to set the default of your checkbox to unselected, you can do this: 您可能还希望将复选框的默认值设置为未选中,您可以这样做:

check_var.set("user")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM