使用 Qt 的列表视图组?

Posted

技术标签:

【中文标题】使用 Qt 的列表视图组?【英文标题】:List-view groups with Qt? 【发布时间】:2010-07-07 13:39:26 【问题描述】:

我们在 .NET 中有 ListView.Groups。 Qt 中是否有等价物(不使用 Windows API)?

我在 Qt 的文档中找不到任何表明支持此功能的内容。

Windows Vista/7 中的示例:http://i50.tinypic.com/zumgyg.jpg

提前致谢!

【问题讨论】:

【参考方案1】:

看起来用Qt model-view控件很容易做到这一点。

起初有点令人困惑,但基本上所有列表、树 ctrl 和网格都以相同的方式处理 - 这让您可以非常轻松地对它们进行有趣的组合。

编辑:Casey 在已删除的答案中发表了有用的评论。 以下是正文和链接:

创建你的树模型很漂亮 直截了当。创造那个 父级的“分组”效果 节点看起来不一样 孩子们,我建议创建一个 ItemDelegate 然后将其设置在您的 使用 setItemDelegate1 查看。在里面 委托的绘画功能你可以 检测索引是否为标头 或者现在,画一些东西 适当地。当你到达那里,如果 你需要帮助,开始另一个问题 我可以发布一个例子。

http://doc.trolltech.com/4.6/qabstractitemview.html#setItemDelegate

【讨论】:

谢谢。我会看看那个。非常感谢任何其他可以提供帮助的内容。 Qt 中包含一些示例和网络上的一些教程 - 从这里开始 (doc.trolltech.com/4.0/qt4-interview.html) 进行概述 Casey 的 cmets 不知何故消失了。最近的一个有非常有价值的信息,在它消失之前我无法看到它。我可以在“最近的活动”下看到大部分内容。 Casey 说(简而言之),“要创建父节点看起来与子节点不同的‘分组’效果,我建议创建一个 ItemDelegate,然后使用 setItemDelegate 在您的视图上设置它。在委托的绘制函数中,您可以检测是否index 是标题或行,并适当地绘制一些东西”。我认为这是迄今为止我得到的最好的答案。谢谢你,凯西! @Sarah - 当所有者删除答案时,不幸的是,任何 cmets 也会被删除。如果您有 10K 代表,则可以阅读它们。我在我的回答中添加了凯西的评论。

以上是关于使用 Qt 的列表视图组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 中自定义列表视图

在 Qt 中使用不同模型访问另一个列表视图的委托中的列表视图模型数据

Qt入门系列开发教程高级控件篇QListview列表视图

QT开发——QT单元视图组件

Qt入门教程数据模型篇模型/视图教程

Qt入门教程数据模型篇模型/视图教程