Tkinter:如何设置网格单元格的背景色?

Tkinter:如何设置网格单元格的背景色?,tkinter,colors,background,grid,cell,Tkinter,Colors,Background,Grid,Cell,我已经创建了一个Tkinter网格,并希望为网格的不同单元格设置不同的背景色 如何实现这一点?我创建的网格如下所示: import numpy as np from tkinter import * M = np.array([[1, 2], [3, 4]]) root = Tk() for i in range(len(M)): #Rows for j in range(len(M[0])): #Columns b = Label(root, text=str(M

我已经创建了一个Tkinter网格,并希望为网格的不同单元格设置不同的背景色


如何实现这一点?

我创建的网格如下所示:

import numpy as np
from tkinter import *

M = np.array([[1, 2], [3, 4]])

root = Tk()

for i in range(len(M)): #Rows
    for j in range(len(M[0])): #Columns
        b = Label(root, text=str(M[i][j]))
        b.grid(row=i, column=j)

mainloop()

最近也有同样的问题!我认为您需要提供更多的细节,但这里有一个大致的答案,以及对我有效的方法:

  • 将单元格作为值存储在字典中,并将其(行、列)元组作为键
  • 现在,您可以使用元组引用这些单元格并更改其属性(下面的示例)
(示例)假设您在两个for循环中定义小部件,如下所示:


希望这有帮助!:)

如何创建网格?Tkinter没有“grid”对象,只有一个名为
grid
的方法。
    widgets_dictionary = {} # initialize your empty dictionary

    for i in range(rows):
        for j in range(columns):

            # widget definition here, let's say it's a label
            label = Label(...)
            label.pack()

            # create a reference to the widget in your dictionary
            widget[(i,j)] = label

    # Now, referring to your specific question:
    # (x,y) = the index of the cell you want to change
    # colour = the background colour you want to change it to

    widget[(x,y)].config(bg = "colour")