В настоящее время я занимаюсь разработкой приложения QtQuick для QtCreator3.0.0, Qt5.2.0 и MSVC2012.
Я хочу сделать приложение, которое вызывает функцию C ++ из qml.
На основе Эта статья.
это работает, когда я использую QtQuick2ApplicationViewer для приложения QtQuick2.
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"#include <QQmlContext>
#include "testclass.h"int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
TestClass cppObj;
QtQuick2ApplicationViewer viewer;
viewer.rootContext()->setContextProperty("cppObj", &cppObj);
viewer.setMainQmlFile(QStringLiteral("qml/QtQuick2CppTest/main.qml"));
viewer.showExpanded();
return app.exec();
}
Для приложения QtQuick Controls требуется QtQuick2ControlsApplicationViewer вместо QtQuick2ApplicationViewer. Но у него нет метода «rootContext ()».
Как я должен связать классы QML и C ++ в этом случае.
я получил обходной путь с форума проекта Qt.
Других решений пока нет …