繁体   English   中英

Tkinter StringVar() 不更新标签的背景颜色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM