に助けてください。テキストとアイコンで行を表示することができます。 テーブルのQStandardItemModelを定義する必要があります。これにより、列定義が与えられます。
以下は、同様のアプリで書いたクラスの3つの関連する機能です。私は自分の行にイメージを使用する必要はなかったので、自分自身でその部分を理解しなければならないことに注意してください。
def drawPeopleListBox(self):
header = ["Picture","First Name","Last Name","Title","Address", "City", "Region"]
self.model = QStandardItemModel(0, len(header), self)
for i in range(len(header):
self.model.setHeaderData(i, Qt.Horizontal, self.selectionDict[i+1].upper())
self.itemList = QTreeView()
self.itemList.setRootIsDecorated(False)
self.itemList.setAlternatingRowColors(True)
self.itemList.setSortingEnabled(False)
self.itemList.setModel(self.model)
self.itemList.NoEditTriggers=True
#self.itemList.clicked[QModelIndex].connect(self.onRowClick)
self.itemList.clicked.connect(self.onRowClick)
self.itemList.setCursor(Qt.PointingHandCursor)
self.itemList.setColumnWidth(0,70)
self.itemList.setColumnWidth(1,140)
self.itemList.setColumnWidth(2,70)
self.itemList.setColumnWidth(3,180)
self.itemList.setColumnWidth(4,100)
self.itemList.setColumnWidth(5,100)
self.itemList.setColumnWidth(6,100)
self.populateList(self.userDataList)
def populateList(self, userDataList):
row=[]
for user in userDataList:
for attrib in user:
row.append(QStandardItem(attrib))
for item in row:
item.setEditable(False)
self.model.appendRow(row)
def onRowClick(self, index):
print index.row()
'''
Here you need to resize the clicked row height. Also resise the image.
Or insert another row that matches your design requirement.
self.model.insertRow(rowNumber, listOfQStandardItems)
'''
self.repaint()
私は自分自身を助けることができます自己タイプ – Sijith
自己はPythonクラスの内部要素です、laymanの答えは、それは保護されたクラス要素のPythonの同等です。さて、それは私には意味をなさない出来事ではなく、私はそれを書きました。私はこれを説明するのがひどく、あなたがPythonでクラッシュコースを取る必要があるように思えます。 –