如何更改QTreeWidgetItem的背景或文本颜色

时间:2014-10-02 18:32:20

标签: c++ qt qtreewidget qtreewidgetitem

我正在用C ++开发一个Qt应用程序。应用程序以树窗口小部件为中心,树窗口小部件具有系统中每个实体的子树。实体有#34;突出显示"颜色,可由用户指定并突出显示与特定实体相关的事件。实体根树项目的背景颜色是实体的突出显示颜色。当事件发生与实体相关时,我想使实体上匹配的标识符的背景颜色与实体的突出显示颜色相同。这是我尝试做的粗略模型,伪HTML标签显示颜色和我想要的位置:

<bgcolor=blue>Entity A</bgcolor>
    Events
        Identifier1 and <bgcolor=blue>Identifier2</bgcolor>
        <bgcolor=blue>Identifier2</bgcolor> @ 10:45:22
        <bgcolor=blue>Identifier3</bgcolor> and Identifier4

据我所知,QTreeWidgetItem无法直接实现这一点。我知道我可以为树项目提供一个代理来处理自定义绘画,但我并不精通Qt的QStyle部分。我们的客户将在XP和Win7上使用此应用程序,并且可能启用或不启用WindowsClassic样式。因此,处理所有QStyle可能性可能变得非常复杂。有没有一个快捷方式,我可以让QStyle用我想要的背景颜色绘制我想要的文本部分,而不必处理树项目绘图需求的每一个潜在部分?

1 个答案:

答案 0 :(得分:1)

基本上你需要在Qt视图中显示HTML。您可以通过创建自定义项委托来完成此操作。请参阅this question

使用HTML设置颜色:

text1 <span style="color: #ff0000">red text</span> text2