首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QApplication字体颜色

QApplication字体颜色
EN

Stack Overflow用户
提问于 2011-08-16 07:02:42
回答 2查看 314关注 0票数 0

我正在编写一个PyQt系统托盘脚本。它只是一个系统服务的交换机。我通过以下代码将QActions添加到QMenu中,我的目的是显示正在运行的服务为绿色,停止的服务为红色:

代码语言:javascript
运行
复制
....
for service, started in s.services.items():
    action = self.menu.addAction(service)

    if started: #It is my purpose, but obviously it doesn't work
        action.setFontColor((0, 255, 0))
    else:
        action.setFontColor((255, 0, 0))

    action.triggered.connect(functools.partial(self.service_clicked, service))
....    

问题是,QAction没有setFontColor方法:)。它有一个setFont方法,但我在QFont文档中看不到与颜色相关的方法。而且它不支持富文本格式。

我找到了一个可能的解决方案here,但这个简单的操作似乎有太多的工作要做。

有没有人能给我一个更简单的建议?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-16 13:16:44

我能看到的唯一更简单的方法是让你的QAction可检查(例如,定义“服务是活动的”应该检查该项),然后使用Qt样式表来获得你想要的效果。

可以在以下位置找到样式菜单项的示例:Qt Style Sheets - Customizing QMenu

票数 1
EN

Stack Overflow用户

发布于 2011-08-16 22:26:17

这并不是你想要的,但是你可以非常简单地将与QAction相关的图标更改为一个红色或绿色的圆点:这样菜单文本不会改变颜色,但是圆点会改变颜色。

代码语言:javascript
运行
复制
....
for service, started in s.services.items():
    action = self.menu.addAction(service)

    if started: #It is my purpose, but obviously it doesn't work
        action.setIcon(QIcon(":/greendot.png"))
    else:
        action.setIcon(QIcon(":/reddot.png"))

    action.triggered.connect(functools.partial(self.service_clicked, service))
....    
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7071796

复制
相关文章

相似问题

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