2017-03-26 93 views
0

我的複選框(admin_check)在切換時沒有在check_var中設置值。當我刪除根窗口它工作正常,但我不能刪除,因爲它的必要性。tkinter窗口複選框操作

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

第一個問題是您無法兩次調用Tk()。 Tkinter被設計爲只有一個'Tk()'的實例。可能還有其他問題,但在解決這個問題之前,解決任何其他問題都沒有意義。 –

回答

0

正如布萊恩·奧克利提到的,你不能有兩個Tk(),而是使用Toplevel()

變化inst_window=Tk()

inst_window=Toplevel(root)

一旦你做到了這一點,沒有其他問題和代碼工作正常。您可能還想將複選框的默認設置爲未選中狀態,您可以這樣做:

check_var.set("user")