(編集済み) 元の質問では、GridView が 2 次元モデルをネイティブに使用すると誤って想定していました。実際、他の QML ビューと同様に要素のリストを取ります。質問と回答をより理解しやすくするために、指定されたコードを少し変更しました。さらに、回答に基づいて作業ソリューションを追加しました。
メイン プログラムでは、QStandardItemModel のインスタンスを定義します。
QScopedPointer<QApplication> app(createApplication(argc, argv));
QmlApplicationViewer viewer;
QStandardItemModel* cppmodel = new QStandardItemModel();
for (int i=0; i<100; i++) {
QStandardItem* item = new QStandardItem(QString("%1").arg(i,2,10,QChar('0')));
cppmodel->appendRow(item);
}
次に、モデルを QML に登録します。
viewer.rootContext()->setContextProperty("cppModel",cppmodel);
QStandardItemModel はテーブルですね。次に、単純な GridView でアイテムを表示するデリゲートを作成するにはどうすればよいですか。
GridView {
model: cppModel
delegate: Rectangle {
Text { text: ??? } //WHAT MUST BE USED HERE ???
}
}
名前付きロールを使用する必要がありますか、それとも適切に作成されたインデックスを使用できますか?