PyQt5 – 如何在窗口中添加图片

  • Post category:Python

PyQt5是一个Python编写的GUI工具包,可以为Python开发人员提供丰富的图形用户界面及应用程序功能。在PyQt5中,添加图片是非常常见的功能。下面,我将详细讲解如何在PyQt5中添加图片。

准备

在进行下一步之前,我们需要先准备一张图片,并将其放置在PyQt5工作目录下。

添加图片到窗口上(方法一)

下面的代码展示了如何将图像添加到PyQt5窗口中:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon, QPixmap

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 image - 示例1'
        self.left = 10
        self.top = 10
        self.width = 640
        self.height = 480
        self.initUI()

    def initUI(self):

        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # 创建一个QPixmap对象
        self.label = QLabel(self)
        self.pixmap = QPixmap('image.jpg')

        # 将QPixmap设置为 QLabel的背景
        self.label.setPixmap(self.pixmap)
        self.resize(self.pixmap.width(), self.pixmap.height())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    ex.show()
    sys.exit(app.exec_())

上述代码中,我们创建了一个应用程序窗口,并将图片添加到该窗口中。通过创建QPixmap对象并将其设置为QLabel的背景,我们可以轻松达到此目的。最终,使用resize()方法调整窗口大小以适应图像的大小。

添加图片到窗口上(方法二)

下面的代码展示了如何通过QPainter在PyQt5窗口中添加图像:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon, QPainter, QPixmap
from PyQt5.QtCore import Qt

class MyWidget(QWidget):

    def __init__(self):
        super(MyWidget, self).__init__()
        self.setWindowTitle('PyQt5 画图')
        self.setGeometry(300, 300, 350, 100)

    def paintEvent(self, event):

        painter = QPainter(self)
        pixmap = QPixmap('image.jpg')
        painter.drawPixmap(self.rect(), pixmap)

if __name__ == '__main__':

    import sys

    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()

    sys.exit(app.exec_())

在上述代码中,我们覆盖了QWidget的paintEvent()方法,并使用QPainter对象在窗口中添加了图像。我们首先创建一个QPixmap对象,然后使用QPainter对象的drawPixmap()方法绘制这个对象。最后,我们使用QWidget的rect()方法调整窗口大小以适应图像的大小。

总结

通过上述两个示例,我们可以轻松学会如何在PyQt5窗口中添加图像。实际上,我们还可以添加更多的自定义功能,比如放大/缩小,旋转等。如果您有兴趣了解更多信息,建议您参考PyQt5文档。