2009-03-22 6 views
1

У меня есть следующий код:Авария 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()) 

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

ответ

1

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

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

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

0

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