Python更改按钮的颜色
我今天在这里是为了在这项任务上寻求一些帮助。我需要使我的按钮根据变量“color”的值更改其颜色,因此,如果: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),则按钮必须为白色,但不会进行任何更改,因
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(),但现在只需更改一个按钮,其他按钮将采用相同的颜色