Это мой первый вопрос, поэтому я постараюсь сформулировать его как можно лучше. У меня есть сетка кадров 5x6 в моей программе python. Я пытаюсь использовать функцию конфигурации в Tkinter, чтобы изменить свойства выбранных кадров в сетке.
Вот код, в котором я создаю сетку:
for i in range(5):
for j in range(6):
frame = Frame(holder,bg = "white",width=32,height=32, borderwidth=1, relief = "raised")
frame.grid(row = j, column = i, padx = 3, pady = 3)
А вот строка, пытающаяся изменить цвет:
frame.config(bg = "red")
Я пробовал такие вещи, как кадр [x] [y], зацикливание и т. д., И после долгих поисков и чтения функций конфигурации я не смог найти решение. Все, что он делает сейчас, это меняет правый нижний кадр сетки на красный, когда я хочу изменить только определенные кадры.
Любая помощь ОЧЕНЬ приветствуется!
Я даю это прямо сейчас, я плохо отпишусь, если это сработает!
Вы должны где-то хранить кадры, которые вы создали, например, в 2D-списке.
Прямо сейчас вы просто создаете кадры, но каждый раз переопределяете переменную frame
с новым кадром. Таким образом, вы можете получить доступ только к последнему созданному кадру.
Решение будет:
# create empty 2D List with list comprehension
frame_list = [[None for i in range(6)] for j in range(5)]
# create the Frames
for i in range(5):
for j in range(6):
frame = Frame(holder,bg = "white",width=32,height=32, borderwidth=1, relief = "raised")
frame.grid(row = j, column = i, padx = 3, pady = 3)
frame_list[i][j] = frame # add frame to 2D list
# configure a specific Frame from the list
frame_list[0][0].config(bg = "red")
Это было здорово! Заработало так, как я хочу!