<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def itemData(self, item, column, role=Qt.DisplayRole):
 """ Returns the data stored under the given role for the item. O The column parameter may be used to differentiate behavior per column. The default implementation does nothing. Descendants should typically override this function instead of data() Note: If you do not have a value to return, return an invalid QVariant instead of returning 0. (This means returning None in Python) """

        if role == Qt.DecorationRole:
            if column == self.COL_DECORATION:
                return item.decoration

        elif role == Qt.FontRole:
            return item.font

        elif role == Qt.ForegroundRole:
            return item.foregroundBrush

        elif role == Qt.BackgroundRole:
            return item.backgroundBrush

        elif role == Qt.SizeHintRole:
            return self.cellSizeHint if item.sizeHint is None else item.sizeHint

        return None