I'm trying to access a role from a ListView in QML. Essentially, I have this in my QML:
ListView {
id: myId
model: myModel
delegate: Item {
Text {
text: model.text
}
Text {
text: model.moreText
}
}
}
myModel
QAbstractListModel の実装です。これの QML 部分は再利用可能なコンポーネントであるため、モデルはさまざまなデータ型を持つさまざまな役割をいくつでも持つことができます。私がやりたいことはcurrentItem
、ListView のプロパティの特定の役割の値にバインドすることです。Component
つまり、次のように、ListView で現在選択されている項目にプロパティをバインドできるページに他のものを追加したいと考えています。
Text {
text: myId.currentItem.text // Or myId.currentItem.model.text (or something similar)
}
私はこれを一般的に利用できるようにする必要があることに注意してください。これは、多くのモデル タイプに対して多くのことを行う予定であり、各モデルと ListView に対してそのようなカスタム コードを記述しないように努めているためです。
現在選択されているアイテムのプロパティにアクセスするのは簡単なはずですが、私が知る限り、それは不可能です。役割が 1 つしかない場合、モデルの扱いが異なるように見えるという事実によって、問題はさらに複雑になります。これは、model.roleName
使用するロールが 1 つしかない場合は、 を介してロールにアクセスする場合があることを意味しますmodelData
。
誰か提案があれば、本当に感謝します。本当にありがとう!
編集
私はこれを見つけました:
http://comments.gmane.org/gmane.comp.lib.qt.qml/1778
ただし、これは私にはうまくいかないようです。QML スクリプトでデータを使用しようとすると、型エラーが発生します。使用可能な型キャストがないため、どうすればよいかわかりません。どんな提案も大歓迎です!
ありがとう!
ジャック