[英]Tkinter StringVar() not updating label's background color
我最近一直在做一个项目,在这个项目中,我必须动态更改变量的背景颜色。 我通过使用 Tkinter String Var() 来做到这一点,它没有显示任何错误,但它也不起作用。 下面这段代码不是实际的项目,但也存在不更新背景颜色的问题。
from tkinter import *
w = Tk()
gridcolor = [[StringVar() for i in range (4)]for j in range (4) ]
for k in range(4):
for l in range(4):
gridcolor[k][l].set("white")
print(gridcolor[k][l].get())
labels = [[Label(w,text ="Hi",bg = gridcolor[i][j].get()).grid(row=i, column=j)for i in range(0,4)]for j in range(0,4)]
def colorchange():
global gridcolor
for k in range(4):
for l in range(4):
gridcolor[k][l].set("red")
colorchange()
w.mainloop()
任何帮助将不胜感激。
您不能以这种方式使用StringVar
class。 绝大多数小部件属性是 static,如果您使用StringVar
作为值,则不会更新。
如果您想通过更改StringVar
的实例来更改某物的颜色,则必须使用该变量的trace
方法来调用 function ,以便在值更改时更新您的小部件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.