问题描述
我创建了一个自定义视图,以无缝网格排列照片,就像 Google 相册那样(见下文)。我的观点基于 QAbstractItemView
(基于 Qt Widgets)。我想将其移植到 QtQuick,以便利用硬件加速、动画和触摸功能。
QtQuick 有一些继承自 Flickable
的视图,您可以将它们与模型一起使用,例如 ListView
和 GridView
。有没有办法创建我自己的自定义视图?我想到的事情:
-
创建一个知道视图宽度的代理模型,并按行布置图像。然后只需使用带有中继器的 Flickable 从该模型中读取,并布置图像。缺点:像这样添加上千张照片,没有动态加载和回收,会占用太多资源。
-
类似,但在上面我放在一起的每个“行”上使用一个 ListView。使用 ListView 的回收能力不要加载太多行。我将不得不禁用选择功能并在顶部滚动我自己的功能。可以工作,但看起来很笨拙。
-
转到 ListView 的源代码,并实现类似的内容: https://code.woboq.org/qt5/qtdeclarative/src/quick/items/qquicklistview.cpp.html 。
QQuickListView
继承自(内部)QQuickItemView
,它做了很多繁重的工作,可能还有一些我不需要的东西。这似乎是最正确的方法,但工作量很大。
我在这里的最佳选择是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)