我正在尝试在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
,包括QImage
和QPainter
,但由于这些类都是QtGui
类型,我无法将它们传递到网格中
有关如何从图像生成QWidget
或使用处理图像的特定QWidget
的任何建议吗?
答案 0 :(得分:5)
QLabel是您需要的小部件。它可以显示QPixmap,而不仅仅是文本。