2
我想整合c++和qml。然而,我的代碼在模擬器罰款,但不是在Nokia N9
(Qt 4.7.4 harmattan_10.2011.34-1
)在諾基亞N9上使用C++和qml時引用錯誤
這裏是我的代碼 我粘貼C++和QML代碼在這裏,供大家參考
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeContext>
#include <QtDeclarative/QDeclarativeEngine>
#include "qmlapplicationviewer.h"
#include "data.h"
#include "testfactory.h"
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QApplication> app(createApplication(argc, argv));
TestFactory *testfactory = new TestFactory();
QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
QDeclarativeContext *context = viewer->rootContext();
context->setContextProperty("testfactory", testfactory);
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
viewer->setMainQmlFile(QLatin1String("qml/main.qml"));
viewer->showExpanded();
testfactory->intilize();
return app->exec();
}
Button {
id: startButton
text: qsTr("Start")
onClicked: {
mainview.state = "START"
testfactory.startMeasurement()
}
}
的持部分代碼工作的模擬器,但設備。 我得到的錯誤是ReferenceError:找不到變量:testfactory
任何人都知道原因是什麼?
你有沒有試過對'test'使用不同的變量名稱,並查看錯誤是否使用該名稱? –
我想我們可能需要看看qml中引用的測試的位置。 [我總是迴避「測試」,因爲它相當通用,可能與其他事情發生衝突。] –
另外,上述的包裝範圍是什麼?因爲showExpanded()會立即返回,所以我希望你在做了app.exec()之後呢? –