画面显示图片的控件是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 文件就相对很简单了:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)