QSortFilterProxyModel.mapToSource аварийно завершает работу. Нет информации, почему

У меня есть следующий код:

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())

Код вылетел на второй строке. Исключение не возникает. Никаких следов назад. Никаких предупреждений. Как это исправить?


person Gary van der Merwe    schedule 22.03.2009    source источник


Ответы (2)


Возможно, вы неправильно используете метод createIndex() прокси-модели. Обычно метод createIndex() вызывается как часть реализации метода index() модели.

Вы пытались вызвать метод index() прокси-модели, чтобы получить прокси-индекс, а затем сопоставить его с источником?

Возможно, вы могли бы показать код в контексте или объяснить, что вы пытаетесь сделать.

person David Boddie    schedule 23.03.2009

Я столкнулся с той же проблемой, но, к счастью, использование метода index() вместо createIndex(), как рекомендует Дэвид, делает волшебство. В общем, возиться с внутренним указателем QModelIndex вне метода index() — плохая идея. Даже при использовании вашей собственной модели возня с внутренним указателем часто приводит к неожиданному поведению, поскольку код Qts View довольно непонятен пользователю.

person count0    schedule 26.08.2009