如何在不点击表头的情况下按列排序QTableWidget?

1 投票
1 回答
3510 浏览
提问于 2025-04-18 15:08

我有一个 QTableWidget 表格,里面有很多列,我想只允许对特定的列进行排序。如果我用 setSortingEnabled(1) 开启整个表格的排序功能,那就意味着所有的列都可以排序。

在这个例子中

Name        Read    Comment
whatever1    0      bla 
whatever2    0      bla
whatever3    1      bla

我只想对“Read”这一列进行排序,并且只用小于号 < 来排序。

有没有什么函数或者槽可以在每个单元格变化后执行呢?

self.ui.table.connect.cellChanged(self.sort_by_read)

1 个回答

1

有一个方法叫做 PySide.QtGui.QTableWidget.sortItems(column[, order=Qt.AscendingOrder]),可以用来按照某一特定的列对项目进行排序。

http://srinikom.github.io/pyside-docs/PySide/QtGui/QTableWidget.html#PySide.QtGui.PySide.QtGui.QTableWidget.sortItems

撰写回答