I have Periodic table of elements placed on main root and since Im withdrawing it to open the quiz window. My problem is that when I'm trying to get value from var.get(), it constantly is giving me 0 and wont get true value. Here's the simple code that goes after I withdraw main root.
def prozor():
global top,brojac
brojac=0
root.withdraw()
top=Tk()
top.title("Provjera znanja")
p1=Label(top, text="Provjera znanja").grid(row=0,column=0,columnspan=4)
provjera1=Button(top,text="Provjera znanja za\nprvi stupac elemenata",command=lambda:kviz1()).grid(row=1,column=0)
provjera2=Button(top,text="Provjera znanja za\ndrugi stupac elemenata",command=lambda:kviz1()).grid(row=1,column=1)
provjera3=Button(top,text="Provjera znanja za\ntreci stupac elemenata",command=lambda:kviz1()).grid(row=1,column=2)
provjera4=Button(top,text="Provjera znanja za\ncetvrti stupac elemenata",command=lambda:kviz1()).grid(row=1,column=3)
provjera5=Button(top,text="Provjera znanja za\npeti stupac elemenata",command=lambda:kviz1()).grid(row=1,column=4)
def kviz1():
global R1,R2,R3,R1a,R2a,R3a,var,odgovor
var= IntVar()
p1=Label(top, text="Koji simbol se koristi za Vodik?").grid(row=2,column=0,columnspan=4)
R1 = Radiobutton(top, text="W", variable=var, value=1).grid(row=3,column=0)
R2 = Radiobutton(top, text="V", variable=var, value=2).grid(row=4,column=0)
R3 = Radiobutton(top, text="H", variable=var, value=3).grid(row=5,column=0)
submit1=Button(top,text="Odgovori",command=lambda:kv1()).grid(row=6,column=1)
def kv1():
global brojac,odgovor
odgovor=var.get()
if odgovor == 3:
brojac=brojac+1
print brojac
I tried to separate grid from radio buttons, but its not working I just need that value from var.get() so I can compare user's selected answer with correct answer. Thanks in advance! I tried globaling var aswell.
You can't have more than one instance of
Tk
. If you need more windows, create instances ofToplevel
. Each instance ofTk
has its own internal namespace for widgets, events, variables, etc.