Wie ändere ich die Hintergrundfarbe nach der Bearbeitung der QTableView-Zelle?

Ich habe dieses QTableView mit benutzerdefiniertem Modell und Delegat. Wie ändere ich die Hintergrundfarbe der Zelle, nachdem ich sie bearbeitet habe?

soll ich das im delegierten tun?setModelData() ?

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

und später in den Modellendata() # nennt es sich selbst?

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

und in ModellensetData() Ich habe keinen Code wie:

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

Wie geht das richtig?

edit: Hier ist mein ganzessetData() Methode im benutzerdefinierten Modell

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

Es tut mir leid, aber ich habe noch keine Ahnung, ich werde den vollständigen Code aus dem Rapid Gui Development Book einfügen. Beispiel: Ich habe meinen Code hier gepostethttp://pastebin.com/ShgRRMcY

Wie ändere ich den Code, um die Hintergrundfarbe der Zelle nach dem Bearbeiten der Zelle zu ändern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage