QWidget for Image

Max*_*Max 0 qt qwidget qgridlayout qt5 pyqt5

我试图QGridLayout在PyQt5中创建一个简单的图像,但发现自己卡住了因为QGridLayout只有通过.addWidget()和添加小部件和布局的功能.addLayout().

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

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
Run Code Online (Sandbox Code Playgroud)

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

我看了看其他QObjects的是处理图像,包括QImage与QPainter而是因为这些类的类型都是QtGui我无法将它们传递到我的网格.

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

ode*_*nde 5

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