PDA

View Full Version : QTableView key pressed



radu_d
20th October 2007, 12:59
In my project I use a QTableView and I want to delete the current row when the user press del. I want to catch the signal keyPressEvent(QKeyEvent*) of the tableview but it does not work do you know why? I used :

connect(ui.categoriesTree,SIGNAL(keyPressEvent(QKe yEvent*)),this,SLOT(FilesKeyPressEvent(QKeyEvent*) ));

and I don’t get the function executed. Thanks a lot.

marcel
20th October 2007, 13:31
That's an event, not a signal. You have to subclass QTableView and override it.

radu_d
20th October 2007, 15:59
Is there any other way to delete a row when the user press del without sub classing QTableView ?

jpn
20th October 2007, 16:05
You could use QShortcut:


QShortcut* shortcut = new QShortcut(QKeySequence(QKeySequence::Delete), tableView);
connect(shortcut, SIGNAL(activated()), receiver, SLOT(deleteRow()));

void Receiver::deleteRow()
{
QModelIndex idx = tableView->currentIndex();
if (idx.isValid())
tableView->model()->removeRow(idx.row(), idx.parent());
}

radu_d
20th October 2007, 16:09
Thanks. I think that this will work.

AlphaWolfXV
29th July 2013, 04:13
Hi JP-N,
I am trying a similar thing with the Escape key in a QTableView. I am using the QShortcut, tied to the qtableview and then connecting the activated signal.

What happens is that it works fine as long as I am not editing a row in the qtableview, if data entry is occurring in the table, the first "Esc" key sequence resets the table to the pre-edit state, and the second and subsequent presses catch fine.

My question is how can I intercept the first ESC key sequence, utilizing the QShortcut?


keyEsc = new QShortcut(QKeySequence(Qt::Key_Escape),ui->tableView);
connect(keyEsc,SIGNAL(activated()),this,SLOT(ESCPr essed_tblview()));

Thanks,
AlphaWolfXV

AlphaWolfXV
1st August 2013, 03:20
For anyone interested, this did work but required first re-implementing the eventFilter in a lineEditDelegate class based on qItemDelegate. Please see this (http://www.qtcentre.org/threads/55496-Simple-QT-SQL-Viewer-Updater-Revisited)for additional information on this solution!
Thanks,
AlphaWolfXV