2010-12-14 27 views
4

J'ai le cas quand je dois fermer manuellement l'éditeur persistant pour le QTableWidget.C++ Qt éditeur question

Par défaut, la fermeture de l'éditeur n'entraîne pas l'enregistrement des modifications sur le QTableWidgetItem (il les supprime simplement).

Je souhaite enregistrer ces modifications avec l'appel closePersistentEditor - comment cela devrait-il être fait?

J'ai essayé émettre cellChanged avant l'appel closePersistentEditor - il n'a pas aidé

Répondre

3

On dirait que vous pouvez écrire quelque chose comme ça

void MyTableWidget::commitAndClosePersistentEditor(const QTableWidgetItem* item) 
{ 
    if (!item) 
     return; 

    QModelIndex index = indexFromItem(item); 
    QWidget* editor = indexWidget(index); 
    commitData(editor); 
    closePresistentEditor(item); 
}