2015-02-10 169 views
0

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

+0

检查这里的答案:http://stackoverflow.com/questions/7848683/如何分类数据在qtablewidget 你可以su bclass QTableWidgetItem并实现<运算符。 希望它有帮助。 – danielfranca 2015-02-10 17:11:29

回答

0

SetSortingEnabled()会影响所有列。 您可以setSortingEnable(False),为时间戳列自定义排序并为其他列标准排序创建函数,并将horizo​​nterHeaders信号sectionClicked()与此函数连接。我尝试了pyqt5,它工作,但很多工作与承认实际sortOrder,设置和删除headerIcons等。

一个更简单的方法是,为时间戳,右对齐,固定长度,上充满了 '0' 的左边,在python3如:

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

左边用空格填充工作过:

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