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