1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
class ListProjectModel(QAbstractListModel):
def __init__(self, datain):
QAbstractListModel.__init__(self)
self.projects = datain
def rowCount(self, parent = QModelIndex()):
return len(self.projects)
def data(self, index, role):
if index.isValid() and role == Qt.DisplayRole:
return self.projects[index.row()].name
else:
return ""
def setData(self, index, value, role):
if not index.isValid():
return False
elif role != Qt.EditRole:
return False
self.projects[index.row()].name = value
return True
def flags(self, index):
return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def insertRows(self, position, rows, parent):
self.beginInsertRows(QModelIndex(), position, position + rows - 1)
for row in range(rows):
self.projects.insert(position, Project(""))
self.endInsertRows()
return True
def removeRows(self, position, rows, parent):
self.beginRemoveRows(QModelIndex(), position, position + rows -1)
for row in range(rows):
self.projects.pop(position)
self.endRemoveRows()
return True |
Partager