Есть Qt 5.4. Определяю QTableView следующим образом
    view->horizontalHeader()->setSectionsMovable(true);
    view->horizontalHeader()->moveSection(7, 1);
    view->horizontalHeader()->moveSection(7, 2);

После этого
QModelIndex mi;
view->selectRow(mi.row());

Перестает выделять. Если убрать перемещения столбцов, то все хорошо. Более того, если столбцы переместить вручную, та же беда, не выделяет. Никто не знает в какую сторону копать что бы избавится от плюхи?
В Qt4 работало при view->horizontalHeader()->setMovable(true), но это исчезло после улучшений в пятерке