繁体   English   中英

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

[英]How can you change the background or text color for part of a QTreeWidgetItem

我正在用C ++开发Qt应用程序。 该应用程序围绕一个树小部件,该树小部件为系统中的每个实体都有一个子树。 实体具有“突出显示”颜色,可以由用户指定并突出显示与特定实体相关的事件。 实体根树项目的背景色是实体的突出显示颜色。 当发生与实体相关的事件时,我想使与实体上匹配的标识符的背景色与实体的突出显示颜色相同。 这是我正在尝试做的一个粗略的模型,伪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用所需的背景色绘制所需的文本部分,而不必处理树项目的所有潜在绘制需求?

基本上,您需要在Qt视图中显示HTML。 您可以通过创建自定义项目委托来实现。 看到这个问题

使用HTML设置颜色:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM