Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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)