我有一个显示我的数据库连接状态的标签。我需要在发生什么事情时更新此标签的文本,但我还想更改此标签的颜色。我使用的是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组件的属性?
发布于 2017-06-01 21:28:15
首先,您需要获取对Label对象的引用。你可能会想“我已经有一个了,它是self.dtbaselbl
”。但是这个值实际上是None。您将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()
https://stackoverflow.com/questions/44308672
复制相似问题