【发布时间】:2014-03-28 15:29:17
【问题描述】:
很久以前Digia announced即将发布的Qt版本中的“下一代”项目视图,称为ItemViewsNG。
从 5.2 版开始,所有模型/视图控件似乎仍然基于旧的 QAbstractItemModel 设计。具体来说,我正在寻找诸如QGraphicsListView 之类的类,但我在网上只能找到旧的源代码存储库(例如this one on Gitorious,自2010 年以来没有任何提交)。 Digia 是否放弃了这个项目?如果我想在 Qt 中使用更灵活的自定义列表控件,我可以使用哪些其他替代方法?
【问题讨论】:
-
替代方案?旧的 QAbstractItemModel 怎么样?
-
是的,但我希望有一种比旧的行/列寻址数据方法更灵活的方法,以及对自定义渲染的更好支持。
-
那时候应该是诺基亚,而不是 Digia。
-
QAbstractItemModel对我来说似乎相当灵活......它是一个表格,也是一棵树,另外每个项目可以具有任意数量的不同数据角色。而数据是QVariant,其中包括QVariantMap和QVariantList...问题通常不是缺乏灵活性,而是相反,决定如何将某种数据映射到QAIM的最佳方式。 -
如果您想要真正定制的渲染,那么您应该创建一个执行渲染的 QML 组件(您可以像任何其他小部件一样在基于
QWidget的 UI 中使用它)。虽然直接访问树状数据会有问题,但我认为您需要一个代理模型来将树按摩到列表中。
标签: c++ qt model-view-controller qgraphicsview qlistview