Como mudar a cor de fundo depois de editar a célula QTableView?

Eu tenho este QTableView com modelo personalizado e delegado, como faço para alterar a cor de fundo da célula depois de editá-lo?

Devo fazer isso no delegadosetModelData() ?

index.model.setData(index, QVariant(True),Qt.UserRole) 

e mais tarde no modelodata() # está chamando a si mesmo?

if role == Qt.BackgroundColorRole:
    if index.model().data(index,Qt.UserRole).toBool():
        return QVariant(QColor(Qt.darkBlue))

e no modelosetData() Eu não tenho nenhum código como:

if role==Qt.UserRole:
    ....

Qual é a maneira correta de fazer isso?

edit: Aqui é o meu todosetData() método no modelo personalizado

def setData(self, index, value, role=Qt.EditRole):

if index.isValid() and 0 <= index.row() < len(self.particles):
    particle = self.particles[index.row()]
    column = index.column()
    if column == ID:
        value,ok= value.toInt()
        if ok:
            particle.id =value                 
    elif column == CYCLEIDANDNAME:
        cycleId,cycleName= value.toString().split(' ')
        particle.cycleId =cycleId
#                also need to set cycleName
        for name in self.cycleNames:
            if name.endsWith(cycleName):
                particle.cycleFrameNormalized=particle.cycleName = name
                break

    elif column == CYCLEFRAME:
        value,ok= value.toInt()
        if ok:
            print 'set new val to :',value
            particle.cycleFrame =value 
#                    self.setData(index,QVariant(QColor(Qt.red)),Qt.BackgroundRole)

    elif column == CLASSID:
        value,ok= value.toInt()
        if ok:
            particle.classId =value                 
    elif column == VARIATIONID:
        value,ok= value.toInt()
        if ok:
            particle.variationId =value                 

    self.emit(SIGNAL("dataChanged(QModelIndex,QModelIndex)"),
              index, index)

    return True

return False

desculpe ainda não tem idéia, eu vou colar o código completo do exemplo do livro de desenvolvimento rápido gui: eu postei meu código aquihttp://pastebin.com/ShgRRMcY

Como eu mudo para o código para alterar a cor do plano de fundo da célula depois de editar a célula?

questionAnswers(2)

yourAnswerToTheQuestion