【问题标题】:What is the status of Qt's ItemViewsNG project?Qt 的 ItemViewsNG 项目的状态如何?
【发布时间】: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,其中包括QVariantMapQVariantList...问题通常不是缺乏灵活性,而是相反,决定如何将某种数据映射到QAIM的最佳方式。
  • 如果您想要真正定制的渲染,那么您应该创建一个执行渲染的 QML 组件(您可以像任何其他小部件一样在基于 QWidget 的 UI 中使用它)。虽然直接访问树状数据会有问题,但我认为您需要一个代理模型来将树按摩到列表中。

标签: c++ qt model-view-controller qgraphicsview qlistview


【解决方案1】:

查看源代码后,随着注意力转移到 Qt Quick,这看起来像是被放弃了。消息来源提到了 QML,所以当时它似乎是并行项目。如果这是对 QML 作为自己的语言而不是 C++ 的某种反应,并且有些人不喜欢这个想法,我不会感到惊讶,但这是我 100% 的猜测。免责声明:不参与 Qt 开发。


在查看源代码之前,我认为该博客很可能在讨论后来的 Qt Quick 1 and QML in Qt 4.7,它在旧的 QGraphicsView 框架之上运行。

在 Qt 5 中,这已演变为 Qt Quick 2 added to Qt 5,它在新的场景图框架之上运行,并且随着新桌面控件的添加而对传统桌面应用程序越来越有用。

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多