Я пытаюсь создать программу, которая меняет цвет прямоугольника в зависимости от выбранной радиокнопки и создала приведенный ниже код. Однако, когда я нажимаю одну из кнопок, в оболочке появляется сообщение о том, что int не поддерживает присваивание. Я запутался в этой ошибке, так как это тот же метод, который я использовал для изменения цвета метки вместо прямоугольника без ошибок.
from tkinter import *
master = Tk()
master.title('Radio Buttons')
rectangle_colour = IntVar()
canvas = Canvas(master, width=300, height=25)
canvas.pack()
def change_colour():
if rectangle_colour.get() == 1:
rect1['fill'] = 'red'
elif rectangle_colour.get() == 2:
rect2['fill'] = 'blue'
elif rectangle_colour.get() == 3:
rect3['fill'] = 'green'
elif rectangle_colour.get() == 4:
rect4['fill'] = 'yellow'
elif rectangle_colour.get() == 5:
rect5['fill'] = 'purple'
button1 = Radiobutton(master, text = ' One', variable = rectangle_colour,
value = 1, command = change_colour)
button1.pack(side=LEFT)
rect1 = canvas.create_rectangle(0, 0, 50, 25, fill = 'grey')
button2 = Radiobutton(master, text = ' Two', variable = rectangle_colour,
value = 2, command = change_colour)
button2.pack(side=LEFT)
rect2 = canvas.create_rectangle(60, 0, 110, 25, fill = 'grey')
button3 = Radiobutton(master, text = ' Three', variable = rectangle_colour,
value = 3, command = change_colour)
button3.pack(side=LEFT)
rect3 = canvas.create_rectangle(120, 0, 170, 25, fill = 'grey')
button4 = Radiobutton(master, text = ' Four', variable = rectangle_colour,
value = 4, command = change_colour)
button4.pack(side=LEFT)
rect4 = canvas.create_rectangle(180, 0, 230, 25, fill = 'grey')
button5 = Radiobutton(master, text = ' Five', variable = rectangle_colour,
value = 5, command = change_colour)
button5.pack(side=LEFT)
rect5 = canvas.create_rectangle(240, 0, 290, 25, fill = 'grey')
master.mainloop()