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 支持,AFAIK。

不要以这种方式编码路径,而是考虑使用资源文件来提高可移植性和平台独立性。

  • 创建一个新的资源文件 ( 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代码,我可以猜测该image文件夹位于与QML文件夹相同级别的源代码中。因此,如果您.gif从该文件夹添加文件,您将在剪贴板中具有以下路径:

://images/name.gif

可以在前面加上前缀以获得最终路径。如果您的前缀设置为/,就像我们上面所做的那样,要在source您的属性中设置的最终字符串AnimatedImage将是:

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

显然,不同的前缀或不同的路径会导致不同的最终路径。

于 2014-11-13T13:50:26.673 回答
0

嗯.....我只是把它放在我的手机(Jolla)上,gif 效果很好。所以这就是似乎不喜欢 gif 的 VM ......

不过,谢谢你的帮助,心理。

于 2014-11-13T15:19:22.947 回答