QWidget for Image

时间:2016-06-13 22:14:28

标签: qt qt5 qwidget pyqt5 qgridlayout

我正在尝试在PyQt5中创建一个简单的QGridLayout图片,但发现自己陷入困境,因为QGridLayout仅具有通过.addWidget().addLayout()添加小部件和布局的功能

下面是我的代码,它需要QWidget但遇到问题,因为我似乎无法找到任何可以处理png / jpg文件的QWidgets

class myGrid(QWidget):
    def __init__(self):
        QObject.__init__(self)

        # Create Layout
        self.lay = QGridLayout()
        self.setLayout(self.lay)

        i1 = QIcon("imgs/img1.png")
        i2 = QIcon("imgs/img2.png")
        i3 = QIcon("imgs/img3.png")
        i4 = QIcon("imgs/img4.png")

        # Add Images to Layout
        self.lay.addWidget(i1, 0, 0)    # Error because type(i1) != QWidget

以上只是我想要添加到布局中的第一个图像。唯一的问题是因为QIcon在技术上不是QWidget我收到编译器错误。

我查看了处理图片的其他QObjects,包括QImageQPainter,但由于这些类都是QtGui类型,我无法将它们传递到网格中

有关如何从图像生成QWidget或使用处理图像的特定QWidget的任何建议吗?

1 个答案:

答案 0 :(得分:5)

QLabel是您需要的小部件。它可以显示QPixmap,而不仅仅是文本。