2

我想在 Meego 上的 C++ 和 QML 之间进行通信。它使用此链接中描述的 C++ QML 绑定发生。

当我在 Symbian 平台上运行应用程序时,它可以工作,并且来自 C++ 的数据可用于在某些 QML 文件中进行操作。

但在 Meego 上总是说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 在我的应用程序中前进。

4

1 回答 1

1

是的,但您的问题与 C++ 和 QML 绑定无关。您的应用程序(特别是视图)找不到要加载的 .qml 文件。

默认情况下,我认为在 meego 上查看的默认路径是../qml. 因此,默认情况下,您应该将/opt/YOURNAME二进制/opt/YOURNAME/bin文件和 .qml 文件打包到/opt/YOURNAME/qml.

但是,您也可以将 qml 文件放入资源中,并使用:/路径来访问资源。

IE,在你的资源文件中:

<RCC>
    <qresource prefix="/">
        <file>qml/foo.qml</file>
    </qresource>
</RCC>

在 C++ 中:

viewer.setSource(QUrl("qrc:/qml/foo.qml"));
于 2011-12-19T23:33:44.750 回答