0

私は少し問題を抱えてここに来ました。コードでローカルの .gif を使用できません。

Linux で QtCreator と Sailfish VM を使用して Sailfish-os アプリケーションを作成しています。

最初にこの例を試しましたが、成功しませんでした。

Rectangle {
    width: animation.width
    height: animation.height

    AnimatedImage { id: animation; source: "../images/animatedimageitem.gif"}
}

実行リターン:

QML AnimatedImage: アニメーション画像ファイル file:///bla/bla/..... の読み取りエラー

gif の他のアクセス許可と他の gif で同じ問題が発生します。

いくつかの調査の後、誰かがプラグインをダウンロードするように指示しているこのページを見つけましたが、Qt はデフォルトで gif が既にサポートされていることを宣言しています (リンクを張ることができればいいのですが、私は新しいです ---'、コメントを参照してください)。

プラグインは最終的に入手できなくなり、ディレクトリにこの Sailfish/bin/plugins/imageformats/libqgif.so が見つかりました。

では、このいまいましいものにGIFを表示するにはどうすればよいですか?

4

2 に答える 2

0

表示されているエラーは、おそらくファイルパスに関連しています。Gifs がサポートされています。

そのようにパスをコーディングする代わりに、リソース ファイルの使用を検討して、移植性とプラットフォームの独立性を向上させます。

  • 新しいリソース ファイルを作成する ( File -> New File or project -> Qt -> Qt Resource File)
  • プロパティ エディタが開きAdd、下部をクリックして、 (またはお好きなもの)Add prefixなどのプレフィックスを設定します。/
  • もう一度クリックしてAdd files、画像を選択して挿入します
  • 新しく追加された画像エントリを右クリックし、copy resource path to Clipboard
  • Build -> Run qmake(正しいコンパイルを確実にするための基本)

クリップボードにコピーしたパスは、次の形式である必要があります。

://PATH_TO_IMAGE.gif

今、あなたのコードを考えると、フォルダーはフォルダーと同じレベルのソースコード内にあるとQML推測できます。したがって、そのフォルダーからファイルを追加すると、クリップボードに次のパスが作成されます。imageQML.gif

://images/name.gif

これに接頭辞を追加して、最終的なパスを取得できます。上記のようにプレフィックスが に設定されている場合、プロパティに/設定される最終的な文字列は次のようになります。sourceAnimatedImage

"qrc:///images/name.gif"

明らかに、異なるプレフィックスまたは異なるパスは、異なる最終パスになります。

于 2014-11-13T13:50:26.673 に答える
0

うーん.....私はそれを自分の電話(Jolla)に置いただけで、gifはうまく機能します。つまり、これは gif が好きではないように見える VM です...

でも助けてくれてありがとう、サイコ。

于 2014-11-13T15:19:22.947 に答える