Как наименьшей кровью дать юзеру возможность прятать (и восстанавливать) колонки?
По нажатию правой кнопки на QTableView::horizontalHeader() или QTableView::verticalHeader() показываешь меню со списком элементов каждого заголовка, которые делаешь переключаемыми (QAction::setCheckable()).