我使用QTableView
+ QStandardItemModel
来显示一些数据(存储在其他一些数据结构中的数据),这个表视图是可排序的。
由于它是可排序的,因此在对此模型进行排序时,我还需要对存储数据的顺序进行排序。我尝试为排序信号实现一个插槽,但是我不知道在单击标头开始排序操作时发出了什么信号。
我尝试了点击的信号,但它仅针对数据行发出,而不是针对headerData。如果我想在排序QtableView
+ QStandardItemModel
时做些别的事情,我该怎么办?
视图的标题可以通过获得
QHeaderView * QTableView::horizontalHeader () const
现在使用获得的QHeaderView
,您可以将一个插槽连接到信号,
void QHeaderView::sectionClicked ( int logicalIndex ) [signal].
从Qt 4.5文档中,单击一个部分时会发出此信号。该部分的逻辑索引由logicalIndex.Note指定,也将发出sectionPressed信号。
希望能帮助到你。
上面提到的Header视图有信号sortIndicatorChanged(int, Qt::SortOrder)
所以使用它可能更聪明
此外,您可能想了解QSortFilterProxyModel
更多细节http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details