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

2024-04-25 13:12:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 方法文本self数据库getvalue颜色update
1条回答
网友
1楼 · 发布于 2024-04-25 13:12:03

首先,需要获取对Label对象的引用。你可能在想“我已经有一个了,它是self.dtbaselbl”。但这个值实际上是零。将Label().pack()的结果赋给它,并且pack始终不返回任何结果。有关详细信息,请参见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()

相关问题 更多 >