如何在框架网格上使用 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")
这是我的第一个问题,所以我会尽我所能。我的 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")