Добрый день!
после нажатия на треугольничек вызывается функция sort(int column, Qt::SortOrder order) модели. переопределяйте и сортируйте.
Спасибо за подсказку. Переопределил. Надо всего-лишь не сортировать пару столбцов. Как можно убрать треугольнички, которые появляются при нажатии на эти столбцы?
Вопрос решен:
...
QMainWindow View;
QTableView table;
connect( View->table->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT( deactivate_column_sort(int) ) );
...
void mainWindow::deactivate_column_sort(int column )
{
if( column != MODE_TABLE_COLUMN && column != DESCRIPTION_COLUMN )
View->table->horizontalHeader()->setSortIndicatorShown( true );
else
View->table->horizontalHeader()->setSortIndicatorShown( false );
}
А сортировка модели model, подключеной в table: View->table->setModel( model );
переопределена подобным образом:
void mySqlTableModel::sort(int column, Qt::SortOrder order)
{
if( column != MODE_TABLE_COLUMN && column != DESCRIPTION_COLUMN )
{
QSqlTableModel::sort( column, order ); // вызываем стандартную сортировку
}
}
В результате столбцы с номерами MODE_TABLE_COLUMN и DESCRIPTION_COLUMN не сортируются, и треугольнички при нажатии на них не появляются.
Остальные столбцы работают по стандартной сортировке.