QTableView排序信号?

问题描述 投票:5回答:2

我使用QTableView + QStandardItemModel来显示一些数据(存储在其他一些数据结构中的数据),这个表视图是可排序的。

由于它是可排序的,因此在对此模型进行排序时,我还需要对存储数据的顺序进行排序。我尝试为排序信号实现一个​​插槽,但是我不知道在单击标头开始排序操作时发出了什么信号。

我尝试了点击的信号,但它仅针对数据行发出,而不是针对headerData。如果我想在排序QtableView + QStandardItemModel时做些别的事情,我该怎么办?

c++ qt qt4 qtableview qabstractitemmodel
2个回答
6
投票

视图的标题可以通过获得

QHeaderView * QTableView::horizontalHeader () const

现在使用获得的QHeaderView,您可以将一个插槽连接到信号,

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

从Qt 4.5文档中,单击一个部分时会发出此信号。该部分的逻辑索引由logicalIndex.Note指定,也将发出sectionPressed信号。

希望能帮助到你。


1
投票

上面提到的Header视图有信号sortIndicatorChanged(int, Qt::SortOrder)所以使用它可能更聪明

此外,您可能想了解QSortFilterProxyModel更多细节http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details

© www.soinside.com 2019 - 2024. All rights reserved.