按列对 QTableWidget 进行排序
Sorting QTableWidget by column
我有一个 QTableWidget,我想根据零列的值对这个 table 的组件进行排序,我使用了这段代码:
ui->tableParticle->sortByColumn(0,Qt::AscendingOrder);
但是没有给出好的结果,下图显示了我寻求解决方案但没有找到的问题,抱歉我不能把所有代码都放上去,因为它很长。
Image
默认情况下,QTableWidget 将列作为普通字符串进行排序。如果您搜索 "custom sorting in QTableWidget" 之类的问题,您会找到答案的解决方案,例如
Custom sorting method of QTableView?
Custom Sorting in QTableWidget
我也发现这个答案是由 SoloPilot 添加的,但我不知道如何用空格填充数字字符串以及何时添加行 (' '+numStr)[ -4:] :
答案
一种对我的情况有效的方法是
- 在填写 table 之前,关闭排序:
table.setSortingEnabled(False)
- 用空格填充数字字符串并使列中的所有字符串具有相同的长度:
(' '+numStr)[-4:]
- 填写table后,开启排序:
table.setSortingEnabled(True)
这解决了行排序问题和数字顺序问题。
我在 setItem 之前添加了它,它起作用了:
ui->table->horizontalHeader()->sortIndicatorOrder();
我有一个 QTableWidget,我想根据零列的值对这个 table 的组件进行排序,我使用了这段代码:
ui->tableParticle->sortByColumn(0,Qt::AscendingOrder);
但是没有给出好的结果,下图显示了我寻求解决方案但没有找到的问题,抱歉我不能把所有代码都放上去,因为它很长。 Image
默认情况下,QTableWidget 将列作为普通字符串进行排序。如果您搜索 "custom sorting in QTableWidget" 之类的问题,您会找到答案的解决方案,例如
Custom sorting method of QTableView?
Custom Sorting in QTableWidget
我也发现这个答案是由 SoloPilot 添加的,但我不知道如何用空格填充数字字符串以及何时添加行 (' '+numStr)[ -4:] :
答案
一种对我的情况有效的方法是
- 在填写 table 之前,关闭排序:
table.setSortingEnabled(False)
- 用空格填充数字字符串并使列中的所有字符串具有相同的长度:
(' '+numStr)[-4:]
- 填写table后,开启排序:
table.setSortingEnabled(True)
这解决了行排序问题和数字顺序问题。
我在 setItem 之前添加了它,它起作用了:
ui->table->horizontalHeader()->sortIndicatorOrder();