2010-09-09 9 views
7

Ahora estoy usando QTableView y QStandardItemModel.Cómo activar el modo de edición de un elemento en QTableView?

En QTableView, si hace doble clic en una celda, esta celda entrará en modo de edición y podrá editar su contenido.

Ahora tengo un problema, quiero activar el modo de edición de un elemento por código (por comando), ¿qué debo hacer? No puedo encontrar la función o ranura adecuada en QTableView o QStandardItemModel. ¿Debo emitir alguna señal para ingresar al modo de edición?

¿Y qué señal debería detectar si quiero saber cuándo finalizó la edición (el usuario presiona "Enter" o hace clic en otros elementos para salir del modo de edición) ??

Gracias por su ayuda

Respuesta

7

Ver:

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

Realmente gracias! Eso resuelve todo mi problema :) –

10

usted debería ser capaz de utilizar editar método de la clase QAbstractItemView para activar la edición para el índice modelo dado.

PLS, ver si es un ejemplo a continuación iba a funcionar para usted:

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

esperanza que esta ayuda, que se refiere a

+0

Muchas gracias por su ayuda, es útil y el ejemplo funciona :) Es muy claro que no puedo dar varias respuestas con la marca correcta, así que puedo votar por usted ^^ –

Cuestiones relacionadas