我很难尝试用qabstractemodel创建自己的排序函数。它可以工作,但不区分大小写。我尝试过使用QSortFilterProxyModel,但是成功了。我的排序函数:
def sort(self, col, order):
self.emit(SIGNAL("layoutAboutToBeChanged()"))
self.tableData = sorted(self.tableData, key=operator.itemgetter(col))
if order == Qt.AscendingOrder:
self.tableData.reverse()
self.emit(SIGNAL("layoutChanged()"))
我正在使用QTableView。我怎么能不区分大小写?在
完整示例:
^{pr2}$示例中的表数据显示排序-不区分大小写。在
您只需将传递给
sorted
函数的排序键中的值转换为小写(或大写)。为了提高效率,还可以使用reverse参数来避免在单独的步骤中执行此操作:请注意,
sorted
执行一个稳定排序,因此相等的值(在应用了键之后)将保留它们的原始位置。因此,示例中的第二列在排序时不会显示任何更改,因为这些值都是“相同的”(如果忽略大小写)。在更新:
这里有一个对字符串和数字有效的解决方案。它假定列不是两种类型的混合:
^{pr2}$相关问题 更多 >
编程相关推荐