开发者

QTableView sorting signal?

开发者 https://www.devze.com 2023-01-04 07:29 出处:网络
I use QTableView + QStandardItemModel to show some data (data stored in some other data structure), and this table view is sortable.

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开发者_StackOverflow中文版 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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号