Documentation states: "There are two ways in which such sequences can be exposed to QML: as a Q_PROPERTY <http://doc.qt.io/qt-5/qobject.html#Q_PROPERTY> of the given sequence type; or as the return type of a Q_INVOKABLE <http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE> method." Nothing is being said about global context injection. For more information on data type conversion between C++ and QML please refer to http://doc.qt.io/qt-5/qtqml-cppintegration-data.html#sequence-type-to-javascript-array
On Tue, Jan 5, 2016 at 10:00 PM Willem Ferguson < willemfergu...@zoology.up.ac.za> wrote: > > > Here are QML and C++ snippets. The root context provides a context to the > top-level QML rectangle. But the QStringList is required by the grandchild > of the top-level rectangle. I suspect the context for exposing the > QStringList is inappropriate. What is the correct approach here? > > C++: > > int main(int argc, char ** argv) > { > QGuiApplication <http://doc.qt.io/qt-5/qguiapplication.html> app(argc, > argv); > > QStringList <http://doc.qt.io/qt-5/qstringlist.html> dataList; > dataList.append("Apples"); > dataList.append("Oranges"); > dataList.append("Bananas"); > dataList.append("Grapes"); > > QQuickView <http://doc.qt.io/qt-5/qquickview.html> view; > QQmlContext <http://doc.qt.io/qt-5/qqmlcontext.html> *ctxt = > view.rootContext(); > ctxt->setContextProperty("myModel", QVariant > <http://doc.qt.io/qt-5/qvariant.html>::fromValue(dataList)); > > view.setSource(QUrl <http://doc.qt.io/qt-5/qurl.html>("qrc:view.qml")); > view.show(); > > return app.exec(); > } > > QML: > > import QtQuick 2.0 > Rectangle { <http://doc.qt.io/qt-5/qml-qtquick-listview.html> > width: 400; height 400 > Rectangle { > width: 200; height 200 > ListView <http://doc.qt.io/qt-5/qml-qtquick-listview.html> { > width: 100; height: 100 > model: myModel > delegate: Rectangle { > height: 25; width: 100 > Text <http://doc.qt.io/qt-5/qml-qtquick-text.html> { text: > modelData } > } > } > > } > } > > ctxt in the C++ code relates to the outer bounding rectangle, thus the > context of myModel is inappropriate with respect to the ListView item. Am I > correct? If so, how should one correct this? Any feedback will be highly > appreciated. The QQmlContext documentation gives no indication about > solutions for this. > Kind regards, > Willem > > > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest