Intercettare il doppio click su una QTableWidget

Intercettare il doppio click su una QTableWidget

Oggi vediamo come intercettare il doppio click su una QTableWidget.

Parto dal presupposto che la QTableWidget sia già aggiunta alla finestra, e che in generale abbiato già creato la vostra GUI.

Partendo dal file di intestazione, aggiungete lo SLOT da richiamare:

private slots:
    void onDoubleClickTable(QTableWidgetItem *item);

A questo punto passiamo al file di implementazione.

Prima di tutto aggiungiamo la connect (in genere nel costruttore):

connect(
 ui->baseTable, 
 SIGNAL(itemDoubleClicked(QTableWidgetItem*)), 
 this, 
 SLOT(onDoubleClickTable(QTableWidgetItem*))
);

Infine, dentro al nostro SLOT creato prima:

void MyWidget::onDoubleClickTable(QTableWidgetItem *item) {
    if (item->column() == 1) {
        ui->baseTable->editItem(item);
    }
}

Qui vi ho impostato anche una cosa in più, e cioè il controllo su quale colonna eseguiamo l'evento.

Considerando che la numerazione delle colonne parte da zero, effettuiamo le nostre operazioni solo se clicchiamo sulla seconda colonna.

Ovviamente levate questo controllo se non vi serve.

Enjoy!