📜  如何在 PyQT5 中制作加载 gif?(1)

📅  最后修改于: 2023-12-03 14:52:29.622000             🧑  作者: Mango

如何在 PyQT5 中制作加载 gif?

在 PyQT5 中,我们可以使用 QLabel 和 QMovie 类来制作加载 gif 动画。QLabel 是用于显示文本或图像的小部件,而 QMovie 则是用于显示动画的类。

以下是制作加载 gif 动画的基本步骤:

  1. 导入 PyQT5 库

要使用 PyQT5 库,首先需要在程序中导入它。可以使用以下代码导入 PyQT5 库:

from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QMovie
from PyQt5.QtWidgets import QApplication, QWidget, QLabel

这将从 PyQt5 库中导入必要的类和函数。

  1. 创建 QLabel 对象

然后,需要创建一个 QLabel 对象,该对象用于显示加载 gif 动画。可以使用以下代码创建 QLabel 对象:

label = QLabel(self)

这将在当前的 QWidget(如窗口)中创建一个 QLabel 对象。

  1. 创建 QMovie 对象

接下来,需要创建一个 QMovie 对象,该对象将加载所需的 gif 动画。可以使用以下代码创建 QMovie 对象:

movie = QMovie('loading.gif')

这将加载名为 loading.gif 的 gif 图像,并将其存储在 QMovie 对象中。

  1. 设置 QMovie 对象

然后,需要设置 QMovie 对象以确保它在 QLabel 中正确显示。可以使用以下代码设置 QMovie 对象:

movie.setCacheMode(QMovie.CacheAll)
movie.setSpeed(100)

这将启用动画缓存以提高性能,并将动画速度设置为 100 毫秒。

  1. 将 QMovie 对象设置为 QLabel 的动画

最后,需要将 QMovie 对象设置为 QLabel 对象的动画,以便它在 QWidget 上正确显示。可以使用以下代码将 QMovie 对象设置为 QLabel 的动画:

label.setMovie(movie)
movie.start()

这将将 QMovie 对象设置为 QLabel 对象的动画,并启动动画以开始播放。

完整代码示例:

from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QMovie
from PyQt5.QtWidgets import QApplication, QWidget, QLabel

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        
        # Create a label to display the gif
        label = QLabel(self)
        
        # Create a QMovie object to load the gif
        movie = QMovie('loading.gif')
        movie.setCacheMode(QMovie.CacheAll)
        movie.setSpeed(100)
        
        # Set the QMovie object as the label's animation
        label.setMovie(movie)
        movie.start()
        
if __name__ == '__main__':
    app = QApplication([])
    widget = MyWidget()
    widget.show()
    app.exec_()

以上是在 PyQT5 中制作加载 gif 的基本步骤和代码示例,可以根据实际需求进行自定义和修改。