QTableView排序信号?

时间:2010-06-20 23:35:31

标签: c++ qt qt4 qtableview qabstractitemmodel

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

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

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

2 个答案:

答案 0 :(得分:6)

视图的标题可以通过

获得

QHeaderView * QTableView::horizontalHeader () const

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

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

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

希望它有所帮助。

答案 1 :(得分:1)

上面提到的标题视图有信号sortIndicatorChanged(int, Qt::SortOrder),因此使用它可能更聪明

另外,您可能需要查看QSortFilterProxyModel 更多详情http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details