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 に答える