web-dev-qa-db-ja.com

Ubuntu SDK:armhfデバイスに展開するときに「QML専用アプリ」で動作するようにイメージを取得するのが難しい

Ubuntu SDKを使用してQMLのみのプログラムをデスクトップにデプロイすると、「Main.qml」と同じフォルダーに配置したイメージにアクセスして、アプリケーションで正しく表示できますソース: "Pics/testpic .png "

Armhfデバイスにデプロイすると、この方法ではアクセスできず、代わりにエラーが発生しますQML QQuickImage:Cannot open:file:///opt/click.ubuntu.comなど.

クリックパッケージを取得して、アプリケーションがアクセスおよび使用できるバイナリに写真のフォルダーを組み込む最良の方法は何ですか?

ソースをWebアドレスに変更すると、ポイントした写真が喜んで表示されるので、画像を表示することはできますが、自分の画像フォルダにアクセスすることはできません。

ここに似たような質問があります

C++プラグイン(qrc)を使用してUbuntu QMLアプリに画像ファイルを追加

koukouvioは、彼の質問に脚注を追加します。

私は最終的にcmakeプロジェクトの代わりにqmakeプロジェクトを作成し、バイナリに画像を埋め込むを達成しました。私は単純な概念実証アプリを開発しているだけなので、私のニーズには問題ありません

「画像をバイナリに埋め込む」というのは、まさに私がやりたいことのように聞こえます。

誰も私とこれを行う方法を実行できますか?

-注意してください、私はこれで多くの「暗闇で刺す」試みを試みました。 .qrcファイル(「qml with C++」アプリのソリューションと思われる)を追加しましたが、ソース: ":/Pics/testpic.png"またはソース: "qrc:/Pics/testpic.png"を介してアクセスしました。同じ開くことができません:ファイルなど.

-また、SDKの左側のプロジェクトペインにフォルダーを追加しようとしました。 「余分なファイル」の下に表示されますが、armhfデバイスに展開されたときにアクセスできないようです。

これに関する助けは非常にありがたいです。

編集

間違った場所の簡単な概要...

私を正しい道に導いてくれたkoukouviouに感謝します。

私の主な問題は、私がSimple UI(qmake)を使用したQMLアプリプロジェクトを開始したことでした。私はそれをまとめて、デスクトップに展開することでテストし、十分に満足したときにarmhfデバイスに展開してみました。そのとき、画像が表示されないことがわかりました。

プロジェクトにC++コードがなかったため、「C++」プロジェクトテンプレートを使用する必要はないように思われたため、問題を「修正」するためにいくつかの試みを行いましたが、「QMLアプリwith Simple UI」プロジェクトテンプレートを使用していました。

QTリソースファイルを単純なUIを備えたQMLアプリプロジェクトに追加すると、動作するはずです。。qrcファイルを追加して、イメージを追加できますが、source: "qrc:/Pics/testpic.png"失敗しました。

私が知っている限り、「シンプルなUIを備えたQMLアプリ」で独自の画像ファイルを使用して、armhfデバイスに展開することはできません。

Koukouviouの答えを読んだ後、私はついに弾丸を噛んでC++コードを使用してプロジェクトを開始しなければならないと思いました。今回はQML UIを備えたQtQuickアプリ(qmake)という説明を選択しました 'ラベルとボタンを含むサンプルUIでC++ Ubuntuアプリケーションプロジェクトを作成します'

前述のように、アプリケーションにC++コードがなく、この(または任意の)コンテキストでC++を使用する方法を実際に理解していないため、以前はこれを避けていましたが、 C++コードを調整または追加すると、Main.qmlを変更して、イメージファイルをリソースに追加できます。実際、プロジェクトツリーにはデフォルトですでに.qrcリソースファイルがありました。

2
pHeLiOn

これは、「バイナリ」に画像を埋め込むためにしたことです。

Ubuntu SDKのデフォルトのフォルダー構造でqmakeプロジェクトを使用しています。画像を保存するディレクトリを作成しました:project_name/backend/your_click/images。バックエンドフォルダーを使用して、以下を含む新しいリソースファイルresource_file.qrcを作成しました。

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images/bigredbutton.png</file>
</qresource>
</RCC>

Qrcファイルを作成するには、右クリックして、新規追加...QtQtリソースファイル、ファイルを手動で編集するか、ゼロから手動で作成します。どれが私のために働いたのか覚えていないので、試してみて知らせてください。将来同じ問題に遭遇する可能性のある他の人のために答えを編集します。

私のMain.qmlファイルでは、次のような画像を使用しています。

Image {
    id: btn
    width: 250; height: 250
    fillMode: Image.PreserveAspectFit
    source: "qrc:images/bigredbutton.png"
    MouseArea {
    ...
    }

これが私のプロジェクト構造のスクリーンショットです。役立つかもしれません。 Project structure with qrc file

1
koukouviou