QTableView排序信号?
Posted
技术标签:
【中文标题】QTableView排序信号?【英文标题】:QTableView sorting signal? 【发布时间】:2010-06-20 23:35:31 【问题描述】:我使用QTableView
+ QStandardItemModel
来显示一些数据(存储在其他数据结构中的数据),并且这个表格视图是可排序的。
由于是可排序的,所以在对这个模型进行排序时,我还需要对存储数据的顺序进行排序。我尝试为排序信号实现一个槽,但我不知道单击标题以启动排序操作时会发出什么信号。
我尝试了 clicked 信号,但它只针对数据行发出,而不是针对 headerData。
如果我在对QtableView
+ QStandardItemModel
进行排序时想做其他事情该怎么办?
【问题讨论】:
【参考方案1】:View的Header可以通过
QHeaderView * QTableView::horizontalHeader () const
现在有了得到的QHeaderView
,就可以给信号连接一个槽了,
void QHeaderView::sectionClicked ( int logicalIndex ) [signal].
在 Qt 4.5 文档中,当单击某个部分时会发出此信号。该部分的逻辑索引由logicalIndex指定。注意,sectionPressed信号也将被发出。
希望对你有帮助。
【讨论】:
【参考方案2】:上面提到的 Header 视图有信号 sortIndicatorChanged(int, Qt::SortOrder)
所以使用它可能更聪明
另外,你可能想看看QSortFilterProxyModel
更多细节在这里http://doc.qt.io/qt-4.8/qsortfilterproxymodel.html#details
【讨论】:
sortIndicatorChanged 在排序前被触发。部分没有点击。以上是关于QTableView排序信号?的主要内容,如果未能解决你的问题,请参考以下文章