2010-09-09 14 views
7

Ora sto usando QTableView e QStandardItemModel.Come attivare la modalità di modifica di un elemento in un QTableView?

In QTableView, se si fa doppio clic su una cella, questa cella entrerà in modalità di modifica e sarà possibile modificarne il contenuto.

Ora ho un problema, voglio attivare la modalità di modifica di un oggetto per codice (per comando), cosa devo fare? Non riesco a trovare la funzione o lo slot corretto in QTableView o QStandardItemModel. Devo emettere qualsiasi segnale per entrare in modalità di modifica?

E quale segnale dovrei prendere se voglio sapere quando il montaggio è finito (utente premere "Invio" o fare clic su un altro elemento per uscire dalla modalità di modifica) ??

Grazie per il vostro aiuto

risposta

7

See:

void QAbstractItemView::edit (const QModelIndex & index) [slot] 
void QAbstractItemView::closeEditor (QWidget * editor, QAbstractItemDelegate::EndEditHint hint) [virtual protected slot] 
void QAbstractItemView::editorDestroyed (QObject * editor) [virtual protected slot] 
+1

Davvero grazie! Questo risolve tutto il mio problema :) –

10

si dovrebbe essere in grado di utilizzare il metodo di modifica della classe QAbstractItemView per innescare la modifica per il dato indice di modello.

Pls, vedere se un esempio di seguito dovrebbe funzionare per voi:

QModelIndex index = ui->tableView->model()->index(0, 0, QModelIndex()); 
ui->tableView->edit(index); 

speranza che questo aiuti, riguarda

+0

Grazie mille per il tuo aiuto, è utile e l'esempio funziona :) È una cosa concisa che non posso dare più risposte al voto corretto, quindi posso semplicemente votare per te ^^ –

Problemi correlati