按列对QTableWidget进行排序

Sorting QTableWidget by column

本文关键字:排序 QTableWidget      更新时间:2023-10-16

我有一个qtableWidget,我想根据零列的值对此表的组件进行排序,我使用了此代码:

ui->tableParticle->sortByColumn(0,Qt::AscendingOrder);

,但它没有很好的效果,下图显示了我寻求解决方案的问题,但没有发现,对不起,我不能将所有代码放置,因为它很长。图像

deafault qtableWidget列作为普通字符串。如果您搜索诸如" QTableWidget中的自定义排序"之类的问题,您将找到答案的解决方案,例如

  1. qtableView的自定义排序方法?

  2. qtableWidget中的自定义排序

我也发现了这个答案由 solopilot ,但是我不知道如何使用空白的数字字符串以及何时添加行('' )numstr)[-4:]:

答案

在我的情况下有效的一种方式是

  1. 在填充桌子之前,请关闭排序:

table.setSortingEnabled(False)

  1. 将数字字符串带有空白,使列中的所有字符串具有相同的长度:

('    '+numStr)[-4:]

  1. 填充桌子后,打开排序:

table.setSortingEnabled(True)

这修复了行排序问题和数值顺序。

我在setItem之前添加了它:

ui->table->horizontalHeader()->sortIndicatorOrder();