QSortFilterProxyModel.mapToSource 崩溃。没有信息为啥
Posted
技术标签:
【中文标题】QSortFilterProxyModel.mapToSource 崩溃。没有信息为啥【英文标题】:QSortFilterProxyModel.mapToSource crashes. No info whyQSortFilterProxyModel.mapToSource 崩溃。没有信息为什么 【发布时间】:2010-10-14 20:30:42 【问题描述】:我有以下代码:
proxy_index = self.log_list.filter_proxy_model.createIndex(index, COL_REV)
model_index = self.log_list.filter_proxy_model.mapToSource(proxy_index)
revno = self.log_list.model.data(model_index,QtCore.Qt.DisplayRole)
self.setEditText(revno.toString())
代码在第二行崩溃。没有引发异常。没有回溯。没有警告。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:可能是您错误地使用了代理模型的 createIndex() 方法。通常,createIndex() 方法作为模型的 index() 方法实现的一部分被调用。
您是否尝试过调用代理模型的 index() 方法来获取代理索引,然后将其映射到源?
也许您可以在上下文中显示代码或解释您要做什么。
【讨论】:
【参考方案2】:我也遇到过同样的问题,但幸运的是,正如 David 所推荐的那样,使用 index () 方法而不是 createIndex () 方法可以做到这一点。 一般来说,在 index() 方法之外乱用 QModelIndex 的内部指针是个坏主意。即使使用您自己的模型,弄乱内部指针也经常导致意外的行为,因为 Qts View 代码对用户来说非常模糊。
【讨论】:
以上是关于QSortFilterProxyModel.mapToSource 崩溃。没有信息为啥的主要内容,如果未能解决你的问题,请参考以下文章