在我的QtableView中有四列。第0列用于以dd-MM-yyyy 格式的日期。并且其他三列包含字符串,因此对它们排序不是问题(可以使用QSortFilterProxyModel
类完成)但是对于col 0我想要从右到左排序(对于升序和降序)。
答案 0 :(得分:0)
以下是 customSortingModel
的简单示例self.tableView = QtGui.TableView(self)
self.table_model = QtGui.QStandardItemModel(0, 0)
self.proxyModel = CustomSortingModel(self)
self.proxyModel.setSourceModel(self.table_model)
self.tableView.setModel(self.proxyModel)
class CustomSortingModel(QtGui.QSortFilterProxyModel):
def lessThan(self,left,right):
col = left.column()
dataleft = left.data()
dataright = right.data()
if col == 2:
dataleft = float(dataleft)
dataright = float(dataright)
elif col == 3:
dataleft = QtCore.QDateTime.fromString(dataleft, "d/M/yy").addYears(100)
dataright = QtCore.QDateTime.fromString(dataright, "d/M/yy").addYears(100)
return dataleft < dataright