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