创建新的自定义 QtQuick 视图以用于模型

问题描述

我创建了一个自定义视图,以无缝网格排列照片,就像 Google 相册那样(见下文)。我的观点基于 QAbstractItemView(基于 Qt Widgets)。我想将其移植到 QtQuick,以便利用硬件加速、动画和触摸功能

enter image description here

QtQuick 有一些继承自 Flickable 的视图,您可以将它们与模型一起使用,例如 ListViewGridView。有没有办法创建我自己的自定义视图?我想到的事情:

  • 创建一个知道视图宽度的代理模型,并按行布置图像。然后只需使用带有中继器的 Flickable 从该模型中读取,并布置图像。缺点:像这样添加上千张照片,没有动态加载和回收,会占用太多资源。

  • 类似,但在上面我放在一起的每个“行”上使用一个 ListView。使用 ListView 的回收能力不要加载太多行。我将不得不禁用选择功能并在顶部滚动我自己的功能。可以工作,但看起来很笨拙。

  • 转到 ListView 的源代码,并实现类似的内容https://code.woboq.org/qt5/qtdeclarative/src/quick/items/qquicklistview.cpp.htmlQQuickListView 继承自(内部)QQuickItemView,它做了很多繁重的工作,可能还有一些我不需要的东西。这似乎是最正确的方法,但工作量很大。

在这里的最佳选择是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)