我想在Meego上C++和QML之间进行通信。 它使用C++ QML 绑定发生,如此链接中所述。
当我在Symbian平台上运行一个应用程序时,它可以工作,并且来自C++的数据可以在某些QML文件中进行操作。
但在米戈上,它总是说myItem.qml file not found
.
请参阅以下代码片段:
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QDeclarativeView view;
MyClass myClass;
view.rootContext()->setContextProperty("myObject", &myClass);
view.setSource(QUrl::fromLocalFile("MyItem.qml"));
view.show();
return app.exec();
}
Meego 不支持 QML C++绑定吗?
我还尝试给出 QML 文件的确切路径,但从未找到该文件,即使 myItem 也在项目结构中。
是否有一些与.pro文件中的路径设置相关的东西
等请帮助解决这个问题,因为我被困在这里,无法使用Qt Quick在我的应用程序中前进。
是的,但您的问题与C++和 QML 绑定无关。 应用程序(特别是视图(找不到要加载的 .qml 文件。
默认情况下,我认为在meego上查找的默认路径是../qml
。 因此,默认情况下,您应该使用 /opt/YOURNAME/bin
中的二进制文件和 /opt/YOURNAME/qml
中的 qml 文件打包到 /opt/YOURNAME
中。
但是,您也可以将 qml 文件放入资源中,并改为使用:/
路径访问资源。
IE,在资源文件中:
<RCC>
<qresource prefix="/">
<file>qml/foo.qml</file>
</qresource>
</RCC>
在C++:
viewer.setSource(QUrl("qrc:/qml/foo.qml"));