如何在框架网格上使用 Tkinter 配置?

How to use Tkinter config on a grid of frames?

这是我的第一个问题,所以我会尽我所能。我的 python 程序中有一个 5x6 的帧网格。我正在尝试利用 Tkinter 中的配置函数来更改网格中 select 帧的属性。

这是我创建网格的代码:

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")

我尝试过 frame[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")