Я пишу свое первое приложение Qt Quick, и у меня много проблем с выполнением простых задач в других средах.Я хочу отображать n случайных изображений из папки.Для этого я использую FolderListModel, но проблема в том, что я не вижу никаких методов для прямого доступа к списку файлов.Итак, вот мой хакерский подход:
- Использование FolderListModel для чтения файлов
- Использование компонента Text в качестве делегата
- Компонент onTextChanged из Text получает имя файла (эта часть работает) идобавляет его к некоторой ListModel
- , рандомизирует ListModel и затем использует его для отображения файлов
У меня много проблем и вопросов, но, во-первых, каков разумный способ сделать это(пожалуйста, сделайте так, чтобы часть списка не должна была быть написана на c ++)?
На данный момент есть 2 проблемы - я не могу понять, как получить доступ к ListModel из компонента Text;и я не могу понять, как сделать 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
}
}