QTreeWidgetItem中的格式化文本

3

我需要创建支持格式化文本的QTreeWidgetItems,例如:

MyCreatedType - INTEGER(1)

(即:上面一行应该有一个“普通”部分:MyCreatedType和一个“格式化”部分(我们这里是INTEGER(1))。

你有什么办法实现这个吗?

谢谢。


我不太理解这个问题 - 你是否想将数字放入项目文本字符串中? - badgerr
不,我只是希望该项的文本可以格式化(即:其中的某些部分将使用粗体字符或使用不同的字体、颜色等)。 - Ferenc Deak
也许这是此问题的重复? - azf
1个回答

0
你需要的是委托。这里解释了委托:

我创建和使用自定义委托时遵循的一般流程:

  1. 创建一个自定义类型,包含您想要封装的信息。
    • 对于您的情况,可能是变量类型名称和类型值的字段。
  2. 将这些自定义类型存储在您的模型中,并用QVariants包装它们以满足QAbstractItemModel所需的返回类型。
  3. 创建与您想要的UI匹配的控件。
    • 在这种情况下,可能意味着一个QText标签用于“MyCreatedType”,后面跟着一个加粗的第二个标签用于“Integer(1)”。
    • 也许该控件具有像“setTypeName”和“setTypeValue”这样的方法。
  4. 创建一个委托,在找到您的自定义类型时绘制您的特定控件。
    • 您将不得不根据需要将自定义类型中的字段映射到自定义UI控件中的字段。
  5. 将您的模型和委托与您正在使用的Tree View相关联。

我希望这个一般的过程有意义。我建议先完成Star Delegate示例,然后再阅读我的过程,因为有了一些背景知识,它会更有意义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接