首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python tkinter -动态更改标签字体颜色

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

Stack Overflow用户
提问于 2017-06-01 21:19:10
回答 1查看 14.2K关注 0票数 1

我有一个显示我的数据库连接状态的标签。我需要在发生什么事情时更新此标签的文本,但我还想更改此标签的颜色。我使用的是update_idletasks()方法,但它只改变文本而不改变颜色。

代码语言:javascript
运行
复制
    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)

这就是我称之为更新的部分。

代码语言:javascript
运行
复制
    self.dtbase_value.set(self.get_current_time() + ': connection established')
    self.dtbase_color.set('SpringGreen')
    root.update_idletasks()

有没有什么特定的方法来动态更新Label组件的属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 21:28:15

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

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

代码语言:javascript
运行
复制
self.dtbaselbl = Label(self.right_frame, textvariable = self.dtbase_value)
self.dtbaselbl.pack(side=TOP)

现在您有了一个正确的引用,您可以随时使用.config方法设置标签的配置选项,包括颜色。

代码语言:javascript
运行
复制
self.dtbase_value.set(self.get_current_time() + ': connection established')
self.dtbaselbl.config(fg="SpringGreen")
root.update_idletasks()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44308672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档