Ich arbeite an einer Aktivität für die Universität und bin auf ein weiteres Problem. Ich habe im Netz gejagt, aber nirgends sagt es mir, was ich falsch gemacht habe. Wir müssen 12 Boxen erstellen, die in 3 Spalten von 4 mit einem Optionsfeld unter jeder Spalte erstellt werden. Wenn das Optionsfeld ausgewählt ist, soll sich die Farbe der Felder ändern. Wenn die Optionsschaltfläche nicht ausgewählt ist, sollen sie zu ihrer ursprünglichen Farbe zurückkehren.Radiobutton Variable nicht ändern in Python (TKinter)
Nachdem ich meine if-Anweisung hinzugefügt habe, um zu bestimmen, was der Variablenwert für die Optionsfelder ist, passiert überhaupt nichts.
Hier ist mein 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()
Jede Hilfe wäre sehr willkommen! Danke