QTableView сортировка сигнала? - PullRequest
6 голосов
/ 21 июня 2010

Я использую QTableView + QStandardItemModel, чтобы показать некоторые данные (данные, хранящиеся в другой структуре данных), и это табличное представление сортируемое .

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

Я попытался нажать сигнал, но он генерируется только для строки данных, а не для headerData. что мне делать, если я хочу сделать что-то еще во время сортировки QtableView + QStandardItemModel?

Ответы [ 2 ]

7 голосов
/ 21 июня 2010

Заголовок просмотра может быть получен с помощью

QHeaderView * QTableView::horizontalHeader () const

Теперь с полученным QHeaderView вы можете подключить слот к сигналу,

void QHeaderView::sectionClicked ( int logicalIndex )   [signal].

Из документации Qt 4.5, Этот сигнал испускается при нажатии на раздел. Логический индекс секции определяется логическим индексом. Отметим, что сигнал sectionPressed также будет передаваться.

Надеюсь, это поможет.

2 голосов
/ 05 января 2016

Упомянутое выше представление заголовка имеет сигнал sortIndicatorChanged(int, Qt::SortOrder), поэтому его может быть разумнее использовать

Также, возможно, вы захотите взглянуть на QSortFilterProxyModel подробнее здесь http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details

...