如何在PyQt5中重新加载一个新的动画gif文件?在

我想做的是:装载测试.gif在

播放测试.gif在

覆盖原来的测试.gif另一个任意动画gif文件

单击按钮时让Qmovie重新加载gif

显示新的gif

下面是我设置的用于尝试此操作的基本代码,但是单击按钮刷新不起作用:import sys

from PyQt5.QtCore import Qt, QByteArray, QSettings, QTimer, pyqtSlot

from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QSizePolicy, QVBoxLayout, QAction, QPushButton

from PyQt5.QtGui import QMovie

class GifPlayer(QWidget):

def __init__(self, title, parent=None):

QWidget.__init__(self, parent)

self.movie = QMovie("test.gif", QByteArray(), self)

size = self.movie.scaledSize()

self.setGeometry(200, 200, size.width(), size.height())

self.setWindowTitle(title)

self.movie_screen = QLabel()

self.movie_screen.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

self.movie_screen.setAlignment(Qt.AlignCenter)

main_layout = QVBoxLayout()

main_layout.addWidget(self.movie_screen)

self.setLayout(main_layout)

self.movie.setCacheMode(QMovie.CacheAll)

self.movie_screen.setMovie(self.movie)

self.movie.start()

self.movie.loopCount()

button = QPushButton('refresh gif', self)

button.setToolTip('This is an example button')

button.move(10,10)

button.clicked.connect(self.on_click)

@pyqtSlot()

def on_click(self):

self.movie_screen.setMovie(self.movie)

print("done")

if __name__ == "__main__":

app = QApplication(sys.argv)

player = GifPlayer("update this gif")

player.show()

sys.exit(app.exec_())

pyqt5 加载gif_PyQt5:在Qmovi中重新加载gif相关推荐

  1. python requests 动态加载_Python获取网页中动态加载的数据

    Python获取网页中动态加载的数据 0.XHR 是什么? XHR是 XMLHttpRequest 对象.既Ajax功能实现所依赖的对象,在JQuery中的Ajax是对 XHR的封装. 1.查看异步加 ...

  2. php 扩展加载顺序,关于PHP中extension加载顺序问题的解决方法

    有的php扩展,加载是有先后顺序的,如果搞错了,会导致扩展无法加载. 1.pdo_sqlsrv是sqlserver扩展,如果在pdo扩展之前加载就会报以下错误:PHP Warning: PHP Sta ...

  3. python selenium 点击加载更多_如何等待页面加载,然后按selenium中的“加载更多”按钮?...

    你可能会在页面底部看到谷歌广告.在from selenium import webdriver from selenium.webdriver.common.by import By from sel ...

  4. c语言浮点型自变量能自加自减,C语言中自加++自减--运算的数据类型可以是Float和Double么?...

    自加++自减--运算的数据类型可以是Float和Double. 在c语言中,并不是所有变量都可以使用自增自减操作符:可以使用自增自减操作符的数据类型有:int.float.double .char.l ...

  5. python里的图像加高斯噪声与matlab中imnoise加高斯噪声的区别?

    python里使用random.gauss函数加噪声: def GaussianNoise(src,means,sigma):NoiseImg=srcrows=NoiseImg.shape[0]col ...

  6. jquery中ajax加载js和json文件

    全栈工程师开发手册 (作者:栾鹏) jquery系列教程6-AJAX全解 jquery中ajax加载js文件 jquery中ajax加载js文件的函数为getScript() 代码如下: $.getS ...

  7. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  8. @PropertySource读取外部配置文件中的k-v保存到运行的环境变量中,加载完微博的配置文件以后使用${}取配置文件中的键值

    @PropertySource读取外部配置文件中的k-v保存到运行的环境变量中,加载完微博的配置文件以后使用${}取配置文件中的键值 该注解value={},可以使用String数组形式,读取多个配置 ...

  9. JDBC中驱动加载的过程分析

    JDBC中驱动加载的过程分析 作者:kenty  来源:博客园  发布时间:2007-08-20 15:01  阅读:1100 次  原文链接   [收藏]    本篇从java.sql.Driver ...

  10. Win8开发中如何加载字符串资源(C#)

    Win8开发中如何加载字符串资源(C#) 你可以从资源文件或库等对象中加载字符串资源. 创建资源文件的方法: 在资源项目或库.控件.软件开发包中创建一个Strings文件夹在文件夹,然后在他的下面在创 ...

最新文章

  1. docker容器重启后数据丢失
  2. Android实现相册分享功能,Android系统自带分享功能的实现(可同时分享文字和图片)...
  3. 为什么说嵌入式开发比单片机要难很多?
  4. 第二百四十六节,Bootstrap弹出框和警告框插件
  5. JS键盘事件最全keycode代码
  6. 斗地主AI算法——第十六章の样例分析
  7. 微信小程序学习笔记-1-环境及基础结构
  8. 新iPhone背部Logo将改为整体居中:方便用户使用反向充电
  9. @Builder 实际参数列表和形式参数列表长度不同
  10. 数据质量管理的核心要素和技术原则
  11. aspectjweaver和aspectjrt的作用
  12. 一个简单证件照的设计过程
  13. 视频信号数字光纤传输 光纤传输让高清视频传输更简单
  14. IIS6 日志删除脚本(t00ls)
  15. c#语言-正方形,圆形,利用接口实现周长及面积的计算
  16. 老司机开车|消费升级如何具体化?
  17. 微信小程序父子组件通信详解
  18. 淘淘商城第77讲——实现商品详情页面展示
  19. 宝利德余海军浙商封面 :新数智时代的修行者
  20. P1027 [NOIP2001 提高组] Car 的旅行路线 (图 最短路)

热门文章

  1. 苹果计算机格式化磁盘,苹果电脑怎么格式化
  2. 阿里巴巴Java开发手册代码规范
  3. 图片轮播html原生代码,原生js实现轮播图的示例代码
  4. cad查看_怎么查看一张CAD图纸的创建时间
  5. Xshell 4使用
  6. 2022年申请亳州市发明专利材料,专利说明书摘要写作技巧
  7. android singletask启动模式,Android SingleTask启动模式与Home键的问题
  8. EXCEL——处理大批量数据
  9. Windows 查看端口占用情况并关闭端口
  10. 8uftp,8uftp使用教程图解