I use QTableView
+ QStandardItemModel
to show some data (data stored in some other data structure), and this table view is sortable.
Since it is sortable, when sorting this model, I also need to sort the order of stored data. I try to implement a slot for the sorting signal, but I don't know what signal is emitted when clicking the header to start the sorting action.
I tried the clicked signal, but it's only emitted for data row, not for the headerData.
what should I do if I want to do something else while sorting the QtableView
+ QStandardItemModel
?
The Header of the View can be obtained by
QHeaderView * QTableView::horizontalHeader () const
Now with the obtained QHeaderView
, you can connect a slot to the signal,
void QHeaderView::sectionClicked ( int logicalIndex ) [signal].
From the Qt 4.5 documentation, This signal is emitted when a section is clicked. The section's logical index is specified by logicalIndex.Note that the sectionPressed signal will also be emitted.
Hope it helps.
The Header view mentioned above has signal sortIndicatorChanged(int, Qt::SortOrder)
so it might be smarter to use it
Also, you might want to have a look into QSortFilterProxyModel
more details here http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details