【问题标题】:Formatted text in QTreeWidgetItemQTreeWidgetItem 中的格式化文本
【发布时间】:2012-07-06 08:35:30
【问题描述】:

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

MyCreatedType - INTEGER(1)

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

知道如何做到这一点吗?

谢谢。

【问题讨论】:

  • 我不太明白这个问题 - 你想在项目文本字符串中输入数字吗?
  • 不,我只是希望项目的文本可以被格式化(即:它的某些部分将使用粗体字符,或者使用不同的字体、颜色等......)。
  • 可能是 this question 的副本?

标签: qt qtreewidgetitem formatted


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多