【问题标题】:QT Custom tree viewQT 自定义树视图
【发布时间】:2013-03-12 09:23:01
【问题描述】:

我的数据表示如下:


  • --+ 父级(0:0)
    • ----+孩子1(1:1)
      • ----+Child11 (2:2)
    • ----+Childn(1:n)

我正在使用 QT 树视图和自定义模型并尝试显示它。 我的要求是,与孩子相比,父母需要在不同的列中。

如果父 col:row 为 0:0。 子 col:row 应该是 1:1。 此外,孩子的孩子可以将 col:row 设置为 2:2

就我阅读 Qt 论坛而言,没有简单的方法可以做到这一点。它说我必须基于 Qt 树视图来实现我的自定义视图。 这是唯一的方法吗?是否有示例说明如何实现自定义树状视图以供参考? 我在 Linux(Ubuntu 12)上使用 Qt 4.7 非常感谢任何帮助。

提前致谢。

【问题讨论】:

  • 这是一个半答案,所以我将作为评论发布。这是一个很好的例子,说明如何制作自己的树模型。我建议批发复制它,然后将其重新塑造以满足您的需求。 qt-project.org/doc/qt-4.8/itemviews-simpletreemodel.html
  • @EricJohnson:我相信他的问题在于典型树模型的默认 QTreeview 显示行为,而不是模型本身,因为他已经实现了自定义模型。

标签: c++ qt qt4 treeview


【解决方案1】:

我不认为你可以修改树视图显示行为而不子类化 QTreeView。另一种方法是实现 QAbstractProxyModel 将您的自定义模型映射到新的代理模型,根据树级别将自定义模型中的每个索引映射到代理模型中的不同列。我认为后一种方法更容易,因为您已经熟悉实现自定义模型而不是 QTreeView。

在此处查看文档: http://qt-project.org/doc/qt-4.8/qabstractproxymodel.html

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多