首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在诺基亚N9上使用c++和qml时的ReferenceError

在诺基亚N9上使用c++和qml时的ReferenceError
EN

Stack Overflow用户
提问于 2011-11-21 05:30:53
回答 1查看 955关注 0票数 2

我想集成c++qml。然而,我的代码在模拟器中工作得很好,但在Nokia N9 (Qt 4.7.4 harmattan_10.2011.34-1)中就不行了。

这是我的代码,我在这里粘贴了c++和qml代码供你参考。

代码语言:javascript
运行
复制
#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: Can't find variable: testfactory

有人知道原因是什么吗?

EN

回答 1

Stack Overflow用户

发布于 2011-11-22 01:58:41

基于来自irc qt-qml的注释,一种解决方案是直接使用

代码语言:javascript
运行
复制
QmlApplicationViewer *viewer = new QmlApplicationViewer();

而不是

代码语言:javascript
运行
复制
QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());

然后代码就可以工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8204899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档