【问题标题】:Displaying Gif Loading in PyQt4在 PyQt4 中显示 Gif 加载
【发布时间】: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 的整个屏幕后执行,但我不知道该怎么做。我已经阅读了许多其他 stackoverflow 和其他链接,但似乎都没有解决如何完成此操作。

【问题讨论】:

  • 有什么问题?博客代码做你想做的事。
  • 运行此代码时,我得到未定义的咖啡加载,这是我的 gif,当我在引号中给出完整目录时,我收到此错误:TypeError:参数与任何重载调用不匹配:QMovie(父:QObject = None):参数 1 具有意外类型 'str' QMovie(QIODevice,格式:QByteArray = QByteArray(),父:QObject = None):参数 1 具有意外类型 'str' QMovie(object,格式:QByteArray = QByteArray(), parent: QObject = None): 参数 2 具有意外类型'MainWindow'

标签: python pyqt pyqt4


【解决方案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_())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      相关资源
      最近更新 更多