从函数更改tkinter bg

从函数更改tkinter bg,tkinter,global-variables,python-3.8,Tkinter,Global Variables,Python 3.8,当条件满足时,尝试更改背景色,但无法使其工作bg保持红色 import tkinter as tk bg_color = '#7C2D32' # bg red x=2 def test(): test_label['text'] = 1234 y=1 if x>y: global bg_color bg_color = '#235C32' # bg green root.after(5000,test) root =

当条件满足时,尝试更改背景色,但无法使其工作bg保持红色

import tkinter as tk

bg_color = '#7C2D32' # bg red
x=2

def test(): 
    test_label['text'] = 1234
    y=1
    if x>y:
        global bg_color
        bg_color = '#235C32' # bg green
    root.after(5000,test)

root = tk.Tk()

test_label=tk.Label(root,font='helvetica 30',bg=bg_color,fg='#f4f4f4')
test_label.grid(row=0,column=0)

test()
root.mainloop()

您不能仅仅更改字符串变量,而期望小部件更改。必须显式调用小部件的
configure
方法

test_label.configure(bg=bg_color)