def data(self, index, role): """ Custom reimplementation of the method data. It is necessary to work with value map and value relation. index: column index role: role used to get the data """ dbdata = QSqlTableModel.data(self, index, role) column = self.headerData(index.column(), Qt.Horizontal) if column in self.dict: if isinstance(self.dict[column], dict): valueMap = self.dict[column] if str(dbdata) in list(valueMap.values()): id = list(valueMap.values()).index(str(dbdata)) return list(valueMap.keys())[id] elif isinstance(self.dict[column], tuple): tupla = self.dict[column] valueMap = self.makeValueRelationDict(tupla[0], tupla[1]) codes = str(dbdata)[1:-1].split(',') code_names = list() for c in codes: if str(c) in list(valueMap.values()): id = list(valueMap.values()).index(str(c)) code_name = list(valueMap.keys())[id] code_names.append(code_name) if len(code_names) > 0: return '{%s}' % ','.join(code_names) return dbdata
def data(self, index, role): if role == Qt.BackgroundRole: if self.colorFunction: if self.colorFunction(index): return self.color_function(index) return QSqlTableModel.data(self, index, role)