Python tkinter-动态更改标签字体颜色

Python tkinter-动态更改标签字体颜色,python,tkinter,label,Python,Tkinter,Label,我有一个显示数据库连接状态的标签。我需要在任何情况下更新此标签的文本,但我也想更改此标签的颜色。我使用的是update\u idletasks()方法,但它只是改变了文本而不是颜色 self.dtbase_value = StringVar() self.dtbase_color = StringVar() self.dtbase_bg = StringVar() self.dtbaselbl = Label(self.right_frame, textv

我有一个显示数据库连接状态的标签。我需要在任何情况下更新此标签的文本,但我也想更改此标签的颜色。我使用的是
update\u idletasks()
方法,但它只是改变了文本而不是颜色

    self.dtbase_value = StringVar()
    self.dtbase_color = StringVar()
    self.dtbase_bg    = StringVar()

    self.dtbaselbl = Label(self.right_frame, textvariable = self.dtbase_value, fg = self.dtbase_color.get(), bg = self.dtbase_bg.get()).pack(side=TOP)
这就是我称之为更新的部分

    self.dtbase_value.set(self.get_current_time() + ': connection established')
    self.dtbase_color.set('SpringGreen')
    root.update_idletasks()

是否有任何特定的方法来动态更新标签组件的属性?

首先,您需要获取对标签对象的引用。您可能会想,“我已经有了一个,它是
self.dtbaselbl
”。但这个值实际上是零。您正在将
Label().pack()
的结果分配给它,而
pack
始终不返回任何结果。有关更多信息,请参阅

在单独的行中打包和分配:

self.dtbaselbl = Label(self.right_frame, textvariable = self.dtbase_value)
self.dtbaselbl.pack(side=TOP)
现在您有了正确的参考,可以随时使用
.config
方法设置标签的配置选项,包括颜色

self.dtbase_value.set(self.get_current_time() + ': connection established')
self.dtbaselbl.config(fg="SpringGreen")
root.update_idletasks()

首先,需要获取对Label对象的引用。您可能会想,“我已经有了一个,它是
self.dtbaselbl
”。但这个值实际上是零。您正在将
Label().pack()
的结果分配给它,而
pack
始终不返回任何结果。有关更多信息,请参阅

在单独的行中打包和分配:

self.dtbaselbl = Label(self.right_frame, textvariable = self.dtbase_value)
self.dtbaselbl.pack(side=TOP)
现在您有了正确的参考,可以随时使用
.config
方法设置标签的配置选项,包括颜色

self.dtbase_value.set(self.get_current_time() + ': connection established')
self.dtbaselbl.config(fg="SpringGreen")
root.update_idletasks()

我想您需要删除这里的括号
fg=self.dtbase\u color.get(),bg=self.dtbase\u bg.get()
我想您需要更改并调用回调函数来更改标签的外观(现在是
None
),我想您需要删除这里的括号
fg=self.dtbase\u color.get(),bg=self.dtbase\u bg.get()。成功了。我试着使用
.config
,但直到我调整了背包,它才起作用。谢谢凯文。成功了。我试图使用
.config
,但直到我调整了包后,它才起作用。