Как использовать конфигурацию Tkinter для сетки кадров?

Это мой первый вопрос, поэтому я постараюсь сформулировать его как можно лучше. У меня есть сетка кадров 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], зацикливание и т. д., И после долгих поисков и чтения функций конфигурации я не смог найти решение. Все, что он делает сейчас, это меняет правый нижний кадр сетки на красный, когда я хочу изменить только определенные кадры.

Любая помощь ОЧЕНЬ приветствуется!

stackoverflow.com/questions/35636082/… здесь один из возможных вариантов. Другим было бы сохранить ссылку на все отдельные фреймы - возможно, в списке списков или в словаре, используя кортежи (строка, столбец) в качестве ключа.
jasonharper 22.03.2022 18:46

Я даю это прямо сейчас, я плохо отпишусь, если это сработает!

Derek Martin 22.03.2022 18:51
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны где-то хранить кадры, которые вы создали, например, в 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")

Это было здорово! Заработало так, как я хочу!

Derek Martin 24.03.2022 13:27

Другие вопросы по теме