1

我有 7 列的 tableWidget(1. col - 可检查项目,2. col - textEdit 小部件,其他列使用 qTablewidgetItem 填充文本)。

填充表格后,为了能够在单击任何列的标题时对其进行排序,我这样做:

tableWidget.setSortingEnabled(1)
tableWidget.resizeRowsToContents()
tableWidget.horizontalHeader().sortIndicatorChanged.connect(tableWidget.resizeRowsToContents)

我的问题是:这是最好的方法吗?因为当我有超过 1000 行时,单击标题时需要几秒钟(最多 5 秒钟)对表格进行排序。如果没有第三行,排序会立即完成,但行的大小会被弄乱,内容被截断或内容周围的空白太多......那么,第 3 行是否有更快的替代方案?

4

1 回答 1

1

好的,我终于找到了为什么需要这么长时间来对表进行排序:每次填充表后,我都会连接sortIndicatorChanged信号但从不断开它。解决方案是在填充表之前简单地断开连接,并在填充完成后再次连接。

于 2013-09-30T08:32:52.383 回答