2017-01-05 1 views
0

주 루트에 배치 된 요소의주기 표가 있으며,이를 뽑아서 퀴즈 창을 엽니 다. 내 문제는 내가 var.get()에서 가치를 얻으려고 할 때 끊임없이 0을주고 실용 가치를 얻지 못할 것입니다. 다음은 주 루트를 철회 한 후 간단한 코드입니다. 기본 루트가 철회되면 Python var.get()에서 라디오 버튼의 값을 가져 오지 않습니다.

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 

나는 라디오 버튼에서 별도의 그리드했지만, 그것은() 그래서 정답과 사용자의 선택 대답을 비교할 수 있습니다 난 그냥 var.get에서 그 값을 필요가 작동하지 않습니다. 미리 감사드립니다! 나는 globaling var를 시도했다.

답변

0

Tk의 인스턴스를 두 개 이상 가질 수 없습니다. 더 많은 창이 필요하면 Toplevel의 인스턴스를 생성하십시오. Tk의 각 인스턴스에는 위젯, 이벤트, 변수 등에 대한 자체 내부 네임 스페이스가 있습니다.

+0

감사합니다. –

관련 문제