How to trigger the edit mode of an item in a QTableView?

10.6k Views Asked by At

I'm using QTableView and QStandardItemModel now.

In the QTableView, if you double-click a cell, this cell will get into edit mode and you can edit its content.

Now I have a problem, I want to trigger the edit mode of an item by code (by command), what should I do? I cannot find proper function or slot in QTableView or QStandardItemModel. Do I need to emit any signal to get into edit mode?

And which signal I should catch if I want to know when the editing is finish (user press "Enter" or click another items to leave the edit mode)??

Thanks for your help

2

There are 2 best solutions below

0
On BEST ANSWER

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
On

you should be able to use edit method of the QAbstractItemView class to trigger editing for the given model index.

Pls, see if an example below would work for you:

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

hope this helps, regards