在 PyQt4 中显示 Gif 加载
Posted
技术标签:
【中文标题】在 PyQt4 中显示 Gif 加载【英文标题】:Displaying Gif Loading in PyQt4 【发布时间】:2018-07-24 18:36:52 【问题描述】:我正在尝试在其他代码执行时显示加载 gif。我对 PyQt 非常不熟悉,并尝试按照 this 链接上的代码进行操作,这似乎是执行 gif 的标准方式。我只想要 gif 播放而不想要按钮。这是我目前使用的代码,但它很差。
self.movie = QMovie(coffeeloading.gif, self)
size = self.movie.scaledSize()
self.movie_screen.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.movie_screen.setAlignment(Qt.AlignCenter)
self.movie_screen = QLabel()
main_layout = QVBoxLayout()
main_layout.addWidget(self.movie_screen)
self.setLayout(main_layout)
self.movie.setCacheMode(QMovie.CacheAll)
self.movie.setSpeed(100)
self.movie_screen.setMovie(self.movie)
self.movie.start()
这应该在按下按钮并填满 240x320 的整个屏幕后执行,但我不知道该怎么做。我已经阅读了许多其他 *** 和其他链接,但似乎都没有解决如何完成此操作。
【问题讨论】:
有什么问题?博客代码做你想做的事。 运行此代码时,我得到未定义的咖啡加载,这是我的 gif,当我在引号中给出完整目录时,我收到此错误:TypeError:参数与任何重载调用不匹配:QMovie(父:QObject = None):参数 1 具有意外类型 'str' QMovie(QIODevice,格式:QByteArray = QByteArray(),父:QObject = None):参数 1 具有意外类型 'str' QMovie(object,格式:QByteArray = QByteArray(), parent: QObject = None): 参数 2 具有意外类型'MainWindow' 【参考方案1】:您也可以在此处使用this 类。
QtWaitingSpinner 扩展了 QtWidgets.QWidget 类,您只需运行即可启动微调器
your_QtWaitingSpinnerObject.start()
您也可以查看this的答案。
【讨论】:
【参考方案2】:# -*- coding: utf-8 -*-
import sys
from PySide.QtGui import *
from PySide.QtCore import *
class test_widget(QWidget):
m_play_state = False
def __init__(self):
super(test_widget, self).__init__()
self.__ui__()
def __ui__(self):
t_lay_parent = QVBoxLayout()
self.m_label_gif = QLabel()
self.m_button_play = QPushButton("Play")
t_lay_parent.addWidget(self.m_label_gif)
t_lay_parent.addWidget(self.m_button_play)
self.m_movie_gif = QMovie("loding.gif")
self.m_label_gif.setMovie(self.m_movie_gif)
self.m_label_gif.setScaledContents(True)
self.m_label_gif.hide()
self.setLayout(t_lay_parent)
self.m_button_play.clicked.connect(self.slt_play)
def slt_play(self):
if self.m_play_state:
self.m_label_gif.hide()
self.m_movie_gif.stop()
self.m_play_state = False
else:
self.m_label_gif.show()
self.m_movie_gif.start()
self.m_play_state = True
if __name__ == "__main__":
app = QApplication(sys.argv)
win = test_widget()
win.show()
sys.exit(app.exec_())
【讨论】:
以上是关于在 PyQt4 中显示 Gif 加载的主要内容,如果未能解决你的问题,请参考以下文章