Sailfish-os上的Gifs

时间:2014-11-13 08:27:22

标签: linux qml qt5 gif sailfish-os

我来这里遇到一个小问题,我不能在我的代码中使用任何本地.gif文件。

我使用QtCreator和Sailfish VM在Linux上工作,制作Sailfish-os应用程序。

我先尝试this example,但没有成功。

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

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

执行返回:

  

QML AnimatedImage:错误读取动画图像文件文件:/// bla / bla / .....

与gif上的其他权限以及其他gif相同的问题。

经过一些研究后我找到了this页面,其中有人指示下载插件,但Qt声明(我希望我可以添加一个链接,但我是新的-_-',请参阅注释)GIF已经默认支持。

该插件终于无法获取,我在我的目录中找到了这个Sailfish / bin / plugins / imageformats / libqgif.so。

那么我该怎么做才能在这个该死的东西上展示一个GIF?

2 个答案:

答案 0 :(得分:0)

您看到的错误可能与文件路径有关。 AFAIK支持Gif个。

不要使用那种方式编写路径,而应考虑使用resource file来提高可移植性和平台独立性。

  • 创建新资源文件(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的{​​{1}}属性中设置的最终字符串将为:

AnimatedImage

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

答案 1 :(得分:0)

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

感谢您的帮助, 心理。