我正在编写我的第一个Qt Quick应用程序,而且在其他环境中执行简单的操作时遇到了很多麻烦。我想从文件夹中显示n个随机图像。为此我正在使用FolderListModel,但问题是我没有看到任何直接访问文件列表的方法。所以这是我的hackish方法:
我有很多问题和疑问,但首先,做到这一点的理智方法是什么(请填写以便列表部分不必用c ++编写)?
现在有两个问题 - 我无法弄清楚如何从Text组件访问ListModel;我无法弄清楚如何使ListModel公开/可从另一个显示图像的组件访问。
以下是代码:
import QtQuick 1.0
import Qt.labs.folderlistmodel 1.0
ListView {
width: 200; height: 300
FolderListModel {
folder: "file:///C:/somefolder"
id: folderModel
nameFilters: ["*.jpg"]
}
Component {
id: fileDelegate
Text { id: intext
text: fileName
//the next line fails, Can't find variable: anotherModel
onTextChanged: anotherModel.append([{name: intext.text}]
)
}
}
model: folderModel
delegate: fileDelegate
ListModel {
id: anotherModel
}
}
答案 0 :(得分:2)
您的代码几乎适合我。我收到错误“QML ListModel:append:value is not object”。这是因为您追加数组。 如果删除行
中的括号anotherModel.append([{name: intext.text}])
它有效。要使另一个模型成为公共属性,请将其写为
property ListModel anotherModel: ListModel {}