Mercurial > hg > Feedworm
view DisplayModel.py @ 225:f6dcc85cd8ca
use SIP API v2
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Thu, 22 May 2014 05:49:46 +0200 |
parents | 699d8f1cebd4 |
children |
line wrap: on
line source
# -*- coding: utf-8 -*- from PyQt4.QtCore import QAbstractListModel, QModelIndex, Qt class DisplayModel(QAbstractListModel): def __init__(self, parent=None, list=None, displayAttribute=None, **args): super(DisplayModel, self).__init__(parent, *args) self.list = list self.displayAttribute = displayAttribute def rowCount(self, parent=QModelIndex()): return len(self.list) def data(self, index, role): if index.isValid() and role == Qt.DisplayRole: row = index.row() item = self.list[row] displayString = self._stringToDisplay(item) return displayString else: return None def _stringToDisplay(self, item): if hasattr(item, self.displayAttribute): return getattr(item, self.displayAttribute) else: return "invalid display attribute: " + self.displayAttribute