2016-05-06 2 views
0

Я работаю над деятельностью для университета и придерживаюсь еще одной проблемы. Я охотился в сети, но нигде не говорит мне, что я сделал неправильно. Мы должны создать 12 ящиков, установленных в 3 столбцах по 4 с помощью переключателя под каждым столбцом. При выборе переключателя цвет ящиков должен измениться. Когда переключатель не выбран, они должны вернуться к исходному цвету.Переменная Radiobutton, не изменяющаяся в Python (TKinter)

После добавления инструкции if, чтобы определить, какое значение переменной для переключателей, ничего не происходит вообще.

Вот мой код:

# Import the Tkinter functions 
from Tkinter import * 

# Create a window 
the_window = Tk() 
the_window.geometry('460x200') 

# Give the window a title 
the_window.title('Show Columns') 

#Declare Radio Variable 
radio_var = IntVar(value=0) 

#Change first set colour 
def change_first_set_colour(): 

    #Determine colour to display 
    if radio_var == 1: 
     label1.configure(bg="blue") 
     label2.configure(bg="blue") 
     label3.configure(bg="blue") 
     label4.configure(bg="blue") 
    else: 
     label1.configure(bg="grey") 
     label2.configure(bg="grey") 
     label3.configure(bg="grey") 
     label4.configure(bg="grey") 

#Change first set colour 
def change_second_set_colour(): 

    #Determine colour to display 
    if radio_var == 2: 
     label1.configure(bg="blue") 
     label2.configure(bg="blue") 
     label3.configure(bg="blue") 
     label4.configure(bg="blue") 
    else: 
     label1.configure(bg="grey") 
     label2.configure(bg="grey") 
     label3.configure(bg="grey") 
     label4.configure(bg="grey") 

#Change first set colour 
def change_third_set_colour(): 

    #Determine colour to display 
    if radio_var == 3: 
     label1.configure(bg="blue") 
     label2.configure(bg="blue") 
     label3.configure(bg="blue") 
     label4.configure(bg="blue") 
    else: 
     label1.configure(bg="grey") 
     label2.configure(bg="grey") 
     label3.configure(bg="grey") 
     label4.configure(bg="grey") 

#Create label1 
label1 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label1.place(x=5, y=5) 

#Create label2 
label2 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label2.place(x=5, y=45) 

#Create label3 
label3 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label3.place(x=5, y=85) 

#Create label4 
label4 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label4.place(x=5, y=125) 

#Create Radio Button 1 
Radio_1 = Radiobutton(the_window, 
         text="First", 
         variable=radio_var, 
         command=change_first_set_colour, 
         value=1) 
Radio_1.place(x=50, y=165) 

#Create label5 
label5 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label5.place(x=155, y=5) 

#Create label6 
label6 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label6.place(x=155, y=45) 

#Create label7 
label7 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label7.place(x=155, y=85) 

#Create label8 
label8 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label8.place(x=155, y=125) 

#Create Radio Button 2 
Radio_2 = Radiobutton(the_window, 
         text="Second", 
         variable=radio_var, 
         command=change_second_set_colour, 
         value=2) 
Radio_2.place(x=180, y=165) 

#Create label9 
label9 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label9.place(x=305, y=5) 

#Create label10 
label10 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label10.place(x=305, y=45) 

#Create label11 
label11 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label11.place(x=305, y=85) 

#Create label12 
label12 = Label(the_window, bg="grey", fg="black", width=20, height=2) 
label12.place(x=305, y=125) 

Radio_3 = Radiobutton(the_window, 
         text="Third", 
         variable=radio_var, 
         command=change_third_set_colour, 
         value=3) 
Radio_3.place(x=345, y=165) 

#---------------------------------------------------------------- 

# Start the event loop to react to user inputs 
the_window.mainloop() 

Любая помощь будет высоко ценится! Thanks

ответ

1

radio_var - объект. Для правильного извлечения значений необходимо использовать radio_var.get().

Смежные вопросы