2017-01-05 9 views
0

В прошлый раз я занимался «компьютерной службой» в качестве проекта исследований. Я хотел показать фактические продукты в QTableView. Он прошел хорошо, он отображает значения от SQLite красиво. Я хотел бы сортировать значения, нажав на заголовок таблицы (сортировка по столбцу нажата).Qt C++ сортировка TableView

Вот мой код:

QSqlQueryModel * modal = new QSqlQueryModel(); 
QSqlQuery * qry = new QSqlQuery(); 
qry->prepare("Select * from products"); 
qry->exec(); 
modal->setQuery(*qry); 
ui->tableView_2->setModel(modal); 
ui->tableView_2->setSortingEnabled(true); 
ui->tableView_2->show(); 

Не могли бы вы мне помочь?

+1

Посмотрите на 'QSortFilterProxyModel'. – drescherjm

ответ

1

В вышеперечисленном сновидении ваши разделы выглядят сортируемыми, но не доступны для кликов.

Чтобы добавить эту функцию, вы можете просто позвонить QHeaderView::setSectionsClickable().

QSqlQueryModel * modal = new QSqlQueryModel(); 
QSqlQuery * qry = new QSqlQuery(); 
qry->prepare("Select * from products"); 
qry->exec(); 
modal->setQuery(*qry); 
ui->tableView_2->setModel(modal); 
ui->tableView_2->setSortingEnabled(true); 
ui->tableView_2->horizontalHeader()->setSectionsClickable(1); 
ui->tableView_2->show(); 

Это должно сделать трюк и позволить вам просто щелкнуть по заголовкам, чтобы отсортировать по этой колонке.

+0

ну, тогда ничего не происходит. нажатие на заголовки столбцов изменяет стрелку в заголовке (для восходящего или нисходящего порядка), но не сортирует. я попробую использовать столбцы, чтобы получить отсортированный столбец из базы данных, а затем вставить. – Glox

+0

@Glox Я пробовал часть кода QTableView на другом наборе данных, чем вы, и он отлично работает для меня. Ни один из столбцов не может быть отсортирован или только некоторые из них? –

+0

Ни один из столбцов не может быть отсортирован, просто ничего не происходит, когда я нажимаю на заголовок: / – Glox

 Смежные вопросы

  • Нет связанных вопросов^_^