Python更改按钮的颜色

Python更改按钮的颜色,python,button,tkinter,Python,Button,Tkinter,我今天在这里是为了在这项任务上寻求一些帮助。我需要使我的按钮根据变量“color”的值更改其颜色,因此,如果: M = [ [0, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0], [0, 1, 1, 0, 0, 1], [0, 1, 0, 0, 1, 0], [0, 1, 0, 0, 0, 2] ] 如果hi找到(0,0),则按钮必须为白色,但不会进行任何更改,因

我今天在这里是为了在这项任务上寻求一些帮助。我需要使我的按钮根据变量“color”的值更改其颜色,因此,如果:

M = [
     [0, 0, 0, 0, 0, 1],
     [1, 1, 0, 0, 0, 1],
     [0, 0, 0, 1, 0, 0],
     [0, 1, 1, 0, 0, 1],
     [0, 1, 0, 0, 1, 0],
     [0, 1, 0, 0, 0, 2]
    ]
如果hi找到(0,0),则按钮必须为白色,但不会进行任何更改,因此请帮助我

boton1 = Button(jugar, bg = color)
boton1.place(x=50,y=10)
boton1.config(heigh=2,width=5)

def cambia_colores(M):
    n=len(M)
    m=len(M[0])
    if M != []:
        return cambia_colores_aux(M,n,m,0,0)
    else:
        return "Error"
def cambia_colores_aux(M,n,m,i,j):
    global color
    if j == m:
        return color
    elif M[i][j] == 0:
        color = "blue"

    elif M[i][j] == 1 :
        color = "black"

    elif M[i][j] == 2:
       color = "red"

    else:
        return cambia_colores_aux(M,n,m,i,j+1)   
    jugar.mainloop()

要更改小部件的颜色,必须调用
configure
方法。您不能仅仅更改创建小部件时使用的变量

例如:

...
new_color = cambia_colores(...)
boton1.configure(background=new_color)
...

您能在标签中指出您正在使用的GUI吗?在许多情况下,您必须使用boton1['bg']=newcolor明确地更改按钮颜色。逻辑很奇怪,为什么只有j改变,为什么我总是0?你真的在
cambia\u colors\u aux
函数中调用
jugar.mainloop()
?这是非常不寻常的。通常将mainloop作为主逻辑中的最后一行代码调用。这仅仅是一个缩进印刷错误吗?是的,那是一个印刷错误,我在使用tkinter,我在使用“m”中的值来更改按钮的颜色,我做了以下更改:def cambia_colors(m):全局颜色n=len(m)m=len(m[0]i=0 j=0对于范围内的i(0,n):对于范围内的j(0,m):如果M[i][j]==0:color=“blue”elif M[i][j]==1:color=“black”elif M[i][j]==2:color=“red”cambia_colors(M)我做了一个迭代版本,我在gui中使用tkinter,移动了jugar.mainloop(),但现在只需更改一个按钮,其他按钮将采用相同的颜色