我有一个标签,显示我的数据库连接的状态。我需要在发生事情时更新此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组件的属性?
答案 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()