参考错误时,使用c++和qml的诺基亚N9
ReferenceError when using c++ and qml on Nokia N9
我想集成c++和qml。然而,我的代码在模拟器中工作得很好,但在Nokia N9
(Qt 4.7.4 harmattan_10.2011.34-1
)中不行
#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
有谁知道原因是什么吗?根据irc qt-qml的注释,一个解决方案是直接使用
QmlApplicationViewer *viewer = new QmlApplicationViewer();
不是QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
相关文章:
- 从C++实例化QML
- 使用CMake创建QML插件
- QT通过C++添加映射QML项目
- 如何在没有信号的情况下从C++执行QML插槽
- QML按钮点击功能执行顺序
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 建议在运行时将带有类实例的列表从c++导入qml
- Qt Quick-如何仅从c++代码与qml属性交互
- 如何将带有自定义对象的容器从C++传递到QML
- QML 使用带有参数C++函数
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- 如何从C++端挂接到 QML 项的 onClick 事件
- 在 qml 中使用 Q_ENUM 和 Q_PROPERTY 作为枚举类
- 从C++更改 QML 图像源
- QML TableView 使用 QtQuick.Controls 2 单击行
- 如何多次询问来自QML对话框的输入?
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 阅读 QML 中结构C++ QVector 的 QVector
- 参考错误时,使用c++和qml的诺基亚N9
- 如何从TextInput在一个特殊的容器文本[诺基亚Qt Qml]