Python tkinter - 动态更改Label字体颜色

时间:2017-06-01 13:19:10

标签: python tkinter label

我有一个标签,显示我的数据库连接的状态。我需要在发生事情时更新此Label的文本,但我也想更改此标签的颜色。我正在使用update_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()

是否有任何特定方法可以动态更新Label组件的属性?

1 个答案:

答案 0 :(得分:1)

首先,您需要获取Label对象的引用。您可能会想“我已经拥有一个,它是self.dtbaselbl”。但该值实际上是无。您将Label().pack()的结果分配给它,pack始终返回None。有关详细信息,请参阅Why do my Tkinter widgets get stored as None?

在不同的行上打包和分配:

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()