Le Wang
Le Wang

Reputation: 131

ReferenceError when using c++ and qml on Nokia N9

I want to integrate and . However, my code works fine in simulator but not in Nokia N9 (Qt 4.7.4 harmattan_10.2011.34-1)

Here is my code I pasted c++ and qml code here for your reference

#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()    
    }
}

The wield part is that the code works on simulator but the device. The error I get is ReferenceError: Can't find variable: testfactory

Any one knows what the reason is?

Upvotes: 2

Views: 963

Answers (1)

Le Wang
Le Wang

Reputation: 131

Based on comments from irc qt-qml, one solution is to just use

QmlApplicationViewer *viewer = new QmlApplicationViewer();

instead of

QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());

Then code works.

Upvotes: 1

Related Questions