qml新手做photo view

qml新手做photo view,第1张

我只说个原理,剩下的你自己实现吧。

画面显示图片的控件是GridView,使用Gridview时需要指定数据源(即Model)。示例里使用listmodel来做数据源。而且listmodel中写定了3条数据。你只要读取目录下的文件列表,然后赋值给listmodel就可以了,gridview会自动显示图片的。至于如何在qml中获得文件列表,以及如何赋值给listmodel,需要进阶学习,你百度谷歌一下吧。多看看官方例子有好处,看明白原理再改。

在目录里删除,文件夹依然存在,加载图片也会报错。

第一,在文件夹中打开工程目录,删除资源文件夹,再用QTCreater打开项目,工程目录中的qml。qrc,拖到QTCreater,第二,拖拽后,会出现以下界面,点击RemovingMissingFiles,关闭项目,重新打开就可以了。

在QT的开发中需要添加图片等资源文件,以下是添加方法。1工程目录中新建文件夹,命名自定义(如my_resource),需要至少添加一个图片或其他文件。2打开项目,选择根目录,点击右键,添加现有文件,选择图片。

本文对应的源码地址:

https://github.com/imtoby/CppModelForQMLExample

程序运行效果:

我们需要注意的是我们在使用 QAbstractListModel 时至少要实现的方法:

我们定义一个继承自 QAbstractListModel 的类 ObjectModel 用于管理 QObject 对象列表,并将其作为 ListView 的 model 传给 QML 端使用。

下面是其头文件的内容:

然后是实现文件:

这里定义一个继承自 QObject 的子类 TestItem,用于作为实际的数据结构存储类。

其头文件如下:

实现文件如下:

接下来我们定义一个数据管理类 ModelManager,其头文件如下:

实现文件如下:

接下来是用于测试的 main.cpp 文件的内容:

至于 QML 文件就相对很简单了:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12108389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存