如何在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))
我正在制作一个播客应用程序,我想在其中显示频道图标。那就是我问自己的地方:如何在 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))