3

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

MyCreatedType -INTEGER(1)

(即:上面的行应该有一个“正常”部分:MyCreatedType 和一个“格式化”部分(INTEGER(1)在我们的例子中)。

知道如何做到这一点吗?

谢谢。

4

1 回答 1

0

你需要的是一个代表。代表在这里解释:

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

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

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

于 2014-01-20T19:13:12.477 回答