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,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 itAlso, you might want to have a look into
QSortFilterProxyModel
more details here http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details