2016-06-13 61 views
0

我想在PyQt5中創建一個簡單的QGridLayout圖像,但發現自己被卡住了,因爲QGridLayout只具有通過.addWidget().addLayout()添加小部件和佈局的功能。圖像的QWidget

以下是我的代碼,期望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,我收到一個編譯器錯誤。

我看着那個處理圖像,包括QImageQPainter其他QObjects但由於這些類都是QtGui型我無法將它們傳遞到我的網格。

有關如何從圖像中生成QWidget或使用處理圖像的特定QWidget的任何建議?

回答

5

QLabel是你需要的部件。它可以顯示一個QPixmap,而不僅僅是文本。

+0

小問題,我正在使用這些'QIcon's'放入'QListWidgetItem's'中。是否有'QWidget'比'QListWidget'更好的將圖像列表添加到佈局? – Max