目前我正在通过 QtCreator3.0.0、Qt5.2.0 和 MSVC2012 开发 QtQuick 应用程序。我想制作一个从 qml 调用 C++ 函数的应用程序。基于这篇文章。当我将 QtQuick2ApplicationViewer 用于 QtQuick2 应用程序时,它可以工作。
[主.cpp]
#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++ 类。