我使用QTableView
+ QStandardItemModel
来显示一些数据(存储在其他一些数据结构中的数据),此表格视图可排序。
由于它是可排序的,因此在对此模型进行排序时,我还需要对存储数据的顺序进行排序。我尝试为排序信号实现一个插槽,但是当我点击标题开始排序操作时,我不知道发出了什么信号。
我尝试了点击的信号,但它仅针对数据行发出,而不是针对headerData发出。
如果我在排序QtableView
+ QStandardItemModel
时想要做其他事情,该怎么办?
答案 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