Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 917
Claire Huang Avatar asked Sep 09 '10 23:09

Claire Huang


2 Answers

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

like image 97
serge_gubenko Avatar answered Nov 15 '22 15:11

serge_gubenko


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]
like image 29
Fred Avatar answered Nov 15 '22 14:11

Fred