QTableView: How can I get the data when user click on a particular cell using mouse

ShivaPrasad Gadapa picture ShivaPrasad Gadapa · Oct 18, 2013 · Viewed 19.1k times · Source

Actually I am new to Qt and unable to match up QMouseEvent with QTableview

please help in solving this issue.

Answer

vahancho picture vahancho · Oct 18, 2013

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.