Qt Code:
  1. class BrickListModel(QAbstractItemModel):
  2.  
  3. def __init__(self):
  4. QAbstractItemModel.__init__(self)
  5.  
  6. self.bricks = []
  7.  
  8. def addBrick(self, brick):
  9. self.beginInsertRows(QModelIndex(), len(self.bricks), len(self.bricks))
  10. self.bricks.append(brick)
  11. self.endInsertRows()
  12.  
  13. def removeBrick(self, index):
  14. self.beginRemoveRows(QModelIndex(), index, index)
  15. del self.bricks[index]
  16. self.endRemoveRows()
  17.  
  18. def clearBricks(self):
  19. if len(self.bricks) != 0:
  20. self.beginRemoveRows(QModelIndex(), 0, len(self.bricks) - 1)
  21. self.bricks = []
  22. self.endRemoveRows()
  23.  
  24. def getAllBricks(self):
  25. return self.bricks
  26.  
  27. def index(self, row, column, parent):
  28. if not parent.isValid():
  29. if column < 2:
  30. if row > len(self.bricks):
  31. return createIndex(row, column)
  32. return QModelIndex()
  33.  
  34. def rowCount(self, parent):
  35. return len(self.bricks)
  36.  
  37. def columnCount(self, parent):
  38. return 2
  39.  
  40. def data(self, index, role):
  41. if index.column == 0:
  42. return self.bricks[index.row()]['id']
  43. elif index.column == 1:
  44. return self.bricks[index.row()]['comment']
  45. return QVariant()
  46.  
  47. def parent(self, index):
  48. return QModelIndex()
  49.  
  50. def headerData(self, section, orientation, role):
  51. if section == 0:
  52. return "Brick"
  53. if section == 1:
  54. return "Comment"
  55. return QVariant()
To copy to clipboard, switch view to plain text mode 

I am using a tree view instead of a list view because I want to have multiple columns.

The problem is that no items show up in the view. What's the problem?