PyQt:如何在窗口加载显示GIF动图

导语

最近想给我的项目添加动态效果,我想了想,最简单的办法就是使用GIF动图,实现一些高级特效

效果图

制作方法

先放置一个空的Qlabel

# 创建 QLabel 用于显示 GIF 动画
label = QLabel()

然后创建movie对象,用于加载gif,动图可以从网上下载

# 创建 QMovie 对象,加载 GIF 动画
movie = QMovie(r"二哈.gif")

最后把movie对象绑定在Qlabel上,并启动动画

# 将 QMovie 对象设置到 QLabel
label.setMovie(movie)
# 启动 GIF 动画
movie.start()

最后可以实现一个简单的动画效果

更多注意事项

label的大小默认是和gif图片的实际大小一致的

由于在实际开发环境中,label往往不能随着图片的大小而变化,我们需要约束label的高宽,并设置图片在label里面的显示方位,设置方位的目的是确保图片能尽可能显示完整

# label尺寸和显示方位居中
label.setFixedSize(300, 200)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)

以上代码设置了label的高度和宽度,并确保图片内容在中间显示

不设置居中对齐则图片会从左边开始显示(默认左对齐)

完整代码

替换动态图片gif路径即可运行,

from PySide6.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PySide6.QtGui import QMovie
from PySide6.QtCore import Qt

app = QApplication([])

# 创建主窗口
window = QWidget()
layout = QVBoxLayout()

# 创建 QLabel 用于显示 GIF 动画
label = QLabel()

# 创建 QMovie 对象,加载 GIF 动画
movie = QMovie(r"二哈动态表情包_爱给网_aigei_com.gif")

# 将 QMovie 对象设置到 QLabel
label.setMovie(movie)

# 启动 GIF 动画
movie.start()

# 设置label大小和对齐方式
# label.setFixedSize(150, 100)
# label.setAlignment(Qt.AlignmentFlag.AlignCenter)

# 将 QLabel 添加到布局中
layout.addWidget(label)
window.setLayout(layout)

# 显示主窗口
window.show()

app.exec()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值