Ну, у меня была та же проблема, и я решил ее, используя это:
QSqlQueryModel *model = database->fetchAll(SELECT id, name, last_name FROM users);
QTableView *tableView = new QTableView();
tableView->setModel(model);
tableView->hideRow(0);
tableView->showRow(0); //use showRow() everytime you need the value.
const QModelIndex selectedRowModel = tableView->selectionModel()->selectedRows()[0];
tableView->hideRow(0);
Действие показать / скрыть настолько быстро, что вы не можете увидеть, как оно происходит.
Не думаю, что это элегантный способ решения проблемы, но, по крайней мере, я могу извлечь из этого значение.