簡體   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