由于排序和/或过滤,我使用了一些与使用QSortFilterProxyModel扩展的相关模型的tableview。一切工作正常,除了行号(我的意思是垂直头)。 使用该代码:QSortFilterProxyModel和行号
def headerData(self, section, orientation, role):
if role == QtCore.Qt.DisplayRole:
if orientation == QtCore.Qt.Horizontal:
return self.__header[section]
elif orientation == QtCore.Qt.Vertical:
return section + 1
固定行号分配给每一行。这在排序/过滤时会导致问题。 我想出了一个解决方案:覆盖默认过滤和排序方法,并将一些额外的参数(行号)添加到数据中,并在每次排序或过滤期间重写它。
问题:有没有其他解决方案呢?在排序/过滤操作之后显示实际项目位置的一些方法?
你真的需要那些为标题?如果您在模型中为“行号”添加了另一列,这将更容易。 – Avaris 2013-02-27 12:37:38
是的,我更喜欢标题而不是单元格,因为它看起来更直观 – Miso 2013-02-27 12:52:01
等等......我想我误解了。 'QSortFilterProxyModel'实际上保持原始数字不变。但你不想那样?无论原始行在哪里,您都希望排序后的行号从“1”到“N”,对吗? – Avaris 2013-02-27 13:03:05