Qt 中的 GIF 动画
我使用了 QGraphicsView
、QGraphicsScene
类来在小部件中显示图片,如下所示:
m_Scene->addPixmap(QPixmap(fileName));
m_View->setScene(m_Scene);
How I can show .gif Animation in the same场景?
I have used QGraphicsView
, QGraphicsScene
classes in order to show a picture in a widget like this:
m_Scene->addPixmap(QPixmap(fileName));
m_View->setScene(m_Scene);
How I can show .gif animation in the same scene?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不将 GIF 动画与
QGraphicsView
或QGraphicsScene
一起使用,我仅在QDialog
中使用它,但我认为这是相同的东西,所以在这里是我的代码:我从此链接获取的
loading.gif
。PS:另请查看 Qt SDK 中的示例。他们真的可以帮忙!
I don't use GIF animation with
QGraphicsView
orQGraphicsScene
, I use it only inQDialog
, but I think it's the same stuff, so here is my code:My
loading.gif
I took from this link.PS: also check the examples from Qt SDK. They are really can help!
我把它放在这里以防我以外的人遇到同样的问题。
问题
GIF 无法加载,并且
isValid()
返回false
。代码
解决方案
为了解决这个问题,我必须将 Qt 的 GIF 插件
qgif4.dll
放在名为imageformats
的文件夹中在我的 exe 旁边,以便能够使用 GIF。该dll可以在下面找到
/plugins/imageformats/qgif4.dll
。I put this here in case someone other than me runs into the same problem.
Problem
The GIF would not load and
isValid()
returnsfalse
.Code
Solution
To solve this, I had to put Qt's GIF-plugin
qgif4.dll
in a folder namedimageformats
next to my exe to be able to use GIFs.The dll can be found under
/plugins/imageformats/qgif4.dll
.http://doc.qt.io/qt-5/qmovie.html
google 和 Qt 文档是你的朋友。甚至还有一个示例。
PS:除非你在中国,否则谷歌是无法访问的,但你可以使用 Bing 和 doc.qt 之类的东西.io.com。
PS2:要获得更深入的答案:您可以使用
QLabel
的QGraphicsProxyWidget
,它通过QLabel 具有
。可能有一种更简单/更短的方法来做到这一点。QMovie
: :setMoviehttp://doc.qt.io/qt-5/qmovie.html
google and Qt docs are your friend. There's even have an example.
PS: unless you're in China, then google is unaccessible, but you'd have stuff like Bing and doc.qt.io.com.
PS2: for a little more in-depth answer: you can use a
QGraphicsProxyWidget
of aQLabel
which has aQMovie
viaQLabel::setMovie
. There's probably an easier/shorter way to do it.给出正确的资源路径,如下代码所示
Give the proper path of resource look like as below code
尝试使用正确的图像路径:
Try with proper image path: