我正在使用QTableView
,当我使用setSortingEnabled
启用排序时,立即调用sortByColumn()
,但我不想这样,因为这默认排序第一列我的表。
sortByColumn()
呼叫?sortByColumn()
方法并阻止那里的排序?对于上述问题有一种可能的解决方法,正如Qt论坛中所建议的那样,我问了类似的问题https://forum.qt.io/topic/84870/qtableview-setsortingenabled-forcing-sortbycolumn
您可以像qzxswpoi一样将默认排序列设置为-1
QHeaderView::setSortIndicator
在跑步之前
yourTableView->horizontalHeader()->setSortIndicator(-1, Qt::AscendingOrder);
因为yourTableView->setSortingEnabled(true);
使用QTableView::setSortingEnabled和QHeaderView::sortIndicatorOrder来确定应该对哪个列进行排序。
请注意,QHeaderView::sortIndicatorSection的文档告诉我们并非所有模型都支持将sort列设置为-1,在这种情况下甚至可能会崩溃。