特定列Qt上的QTableWidget setSortingEnabled

时间:2015-02-10 16:35:48

标签: qt sorting qtablewidget

我有一个包含2列的表格小部件。第一列包含时间戳,第二列包含与时间戳对应的消息。我希望用户能够单击时间戳列的标题并反转顺序。我还希望用户能够单击消息标题并按字母顺序放置所有消息。使用setSortingEnabled可以完美地处理消息头,但由于时间戳的格式,这不会正确地对时间戳进行排序。有没有办法在messages列上设置setSortingEnabled(),当用户点击时间戳标题时,它会调用一个自定义函数进行排序?

1 个答案:

答案 0 :(得分:0)

SetSortingEnabled()会影响所有列。 您可以setSortingEnable(False),创建一个函数,其中包含timestamp-column的自定义排序和其他列的标准排序,并使用此函数连接horizo​​nterHeaders信号sectionClicked()。我试过pyqt5,它可以工作,但很多工作与识别实际sortOrder,设置和删除headerIcons等..

更简单的方法是,在python3中为左侧填充' 0'设置适当的时间戳,右对齐,固定长度的格式,例如:

ts = '{:0>15}'.format(timestamp)

左边填充空格也是如此:

ts = '{: >15}'.format(timestamp)