I am working on an activity for university and am stick on yet another problem. I have hunted on the net but nowhere does it tell me what I have done wrong. We have to create 12 boxes set up in 3 columns of 4 with a radio button underneath each column.When the radio button is selected, the colour of the boxes are meant to change. When the radio button is unselected, they are meant to go back to their original colour.
After adding my if statement to determine what the variable value is for the radio buttons, nothing happens at all.
Here is my code:
# 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()
Any help would be much appreciated! Thanks
radio_var
is an object. You need to use radio_var.get()
in order to propertly retrieve the values.