How can I get the data of a clicked cell?

qt, qtableview

Solution

Here is an example of how you can get a table cell's text when clicking on it.

Suppose a `QTableView` defined in some `MyClass` class. You need to `connect` the `clicked` signal to your own `MyClass::onTableClicked()` slot, as shown below:

connect(tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onTableClicked(const QModelIndex &)));

Slot implementation:

void MyClass::onTableClicked(const QModelIndex &index)
{
    if (index.isValid()) {
        QString cellText = index.data().toString();        
    }
}

You can use also `doubleClicked`, `pressed` or other signals depending on your goal.

Problem

I am unable to use `QMouseEvent` with `QTableview` in order to get the data of a clicked cell.

Original source