pyqt(二)动图(gif)显示与资源文件(qrc文件)

前言

前面简单说了下win和mac下环境的搭建
pyqt(一)pyqt环境搭建 win+mac
现在来说下,前面项目中遇到的问题。
首先想讲一下动态图和资源文件,因为我是第一次使用pyqt所以对资源文件没立即的理解,所以在gif引用的时候一直出错。
这里来说下如何正确的使用gif图片

引用gif图片

引用gif百度很容易可以找到,类似下面的方法

    self.gif = QMovie('qq.gif')
    self.label_gif.setMovie(self.gif)
    self.gif.start()

这样的方法没有错,但这里的qq.gif是本地路径,并不适合后面打包成exe

然后我想到像添加静态图片那样使用改变样式表,如下图
添加资源
但这样添加后,会发现运行但时候,gif变为了一张静态图片,并没有gif的动态效果。。。

这时候,我就想如何才能将gif打包进exe里,让QMovie能访问。
这时候看了下ui文件转成的py文件
qrc路径
可以发现ui文件转成的py文件添加的静态文件并不是使用的本地路径,而是使用了一个奇怪的路径。而这个奇怪的路径就是前面资源文件中我们所建立的目录
路径
这样就可以发现将gif图片放进资源文件然后使用资源文件中路径这不就好了

	self.gif = QMovie(':/platelet/1.gif')
    self.label_5.setMovie(self.gif)
    self.gif.start()

所以用上面的代码试了下,然后发现可以得到可爱的血小板动图的效果了。

gif图尺寸的调整

本以为到上面就完美的解决gif动图的问题了,但到插入红细胞gif动图的时候,因为动图尺寸较大,而实际需要缩放,给的label尺寸就小于gif动图的尺寸,这时候就发现,动图不能展示完全了。
fail
可以发现因为尺寸不匹配所以导致,对不起这三个字没有出现在图片中,因为pyqt的资料较少,最终通过qt的资料还是找到了调节尺寸的方法

	self.gif = QMovie(':/platelet/5.gif')
    self.gif.setScaledSize(QSize(200,200))
    self.label.setMovie(self.gif)
    self.gif.start()

没错就是self.gif.setScaledSize(QSize(200,200))这句,在Qsize中写入调整后的尺寸大小
然后就能成功得到显示正确的gif图了
success

结语

本文主要回忆了在pyqt中添加gif图片时遇到的问题,如何正确的使用资源文件,如何调整gif图片的大小。因为作者水平有限,也是初学,所以提到的都是些很基础的问题,理解上也很可能有错误,如果有什么说错的地方还请各位大佬不吝赐教。
红细胞

猜你喜欢

转载自blog.csdn.net/qq_26406447/article/details/84574791