Сделал так:
C++ (Qt)
void MyTableView::mousePressEvent(QMouseEvent *event)
{
QModelIndex index = this->indexAt(this->viewport()->mapFromGlobal(event->globalPos()));
if (!index.isValid()){
return;
} else {
QTableView::mousePressEvent(event);
}
}
Метод работает как надо, то есть на неправильном индексе оно идет на return. Но евент все равно срабатывает нормально и селект сбрасывается.