我正在用 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 用我想要的背景颜色绘制我想要的文本部分,而不必处理树项目的每一个潜在的绘图需求?