如何在PyQt5中正确显示一张图片?

How to properly display a picture in PyQt5?

我正在制作一个播客应用程序,我想在其中显示频道图标。那就是我问自己的地方:如何在 PyQt5 中正确显示图片?我读到这个:

label = QLabel()
pixmap = QPixmap('image.png')
label.setPixmap(pixmap)

通常都是这样做的,但我对此感到有点不安。尽管有一种额外的方法可以像这样做到这一点,但对我来说感觉很糟糕。是否有任何文档段落将上述方式定义为官方标准方式?如果没有,有没有更好的方法?像

lay = QVBoxLayout()
image = SomeWidget("image.png")
lay.addWidget(image)

QObject 的所有 Qt 子class(包括 QWidget 的所有子class,因为它继承自 QObject)允许在构造函数中将它们的 Qt properties 设置为关键字参数.

因为pixmap是QLabel的一个属性,你可以直接用下面一行的图像集创建一个:

image = QLabel(pixmap=QPixmap('image.png'))

如果您对此很烦恼,那么只需创建一个方便的函数或 class:

def ImageWidget(path):
    return QLabel(pixmap=QPixmap(path))

# or, alternatively

class ImageWidget(QLabel):
    def __init__(self, path):
        super().__init__(pixmap=QPixmap(path))