如何在显示之前强制对 QTableWidget 进行排序

How to force sorting a QTableWidget prior to displaying

我正在使用 Qt 5.21.3。我有一个 QTableWidget,它在最初显示时按填充顺序显示行。我已经设置了 setSortingEnabled(true) 并且当我单击 headers 列时所有行都正确排序,但我希望 table 在显示之前在特定列上排序,在本例中为第 0 列table 但我一辈子都想不出如何完成它。

我尝试在填充 table 之前设置 setSortingEnabled(false),然后在显示 table 之前设置为 true,但这似乎没有任何作用。

我现在解决这个问题的方法是在填充 table 之前使用 std::sort 对 QList 进行排序,但这对我来说似乎是一个问题,我不确定我是否可以如果需要,对第一个项目以外的项目进行排序。

您必须调用模型的 sort() 方法:

tableWidget->model()->sort(0, Qt::AscendingOrder);

或 sortItems() 方法:

tableWidget->sortItems(0, Qt::AscendingOrder);

填写后 table.