私は最初のQt Quickアプリケーションを書いていますが、私は他の環境では単純なことをするのに苦労しています。私はフォルダからn個のランダムな画像を表示したい。この目的のために、私はFolderListModelを使用していますが、問題は、ファイルのリストに直接アクセスする方法がないことです。だからここに私のハックのアプローチです:Qt Quickのフォルダからn個のランダムなファイルを読む
- 使用FolderListModelがファイルに読み取るために
- onTextChangedテキストコンポーネントのデリゲートとして
- 使用テキストコンポーネントは、ファイル名(この部分の作品)を取得し、いくつかのListModel
- ランダム化するために、それを追加します ListModelを使用してファイルを表示するには
私は多くの問題と疑問がありますが、まずこれを行うにはどうすればよいですか(リスト部分にはC++で書かれていますか?)
現在、2つの問題があります.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
}
}
と書いてください。これはほとんど動作します。私は行を次のように変更しなければなりませんでした:parent.parent.anotherModel.append({name:intext.text}) – Kaitnieks
Strange。それはちょうどそのように動作するはずです。親を持たないソリューションが必要な場合は、ListView(id:myFolderListなど)にIDを追加し、そのIDを使用してリストモデル(myFolderList.anotherModel.append(...)など)を参照します。 – blakharaz