2014-11-04 6 views
1

Я установил несколько пользовательских делегатов в моем списке. Когда я делаю сброс модели QListView::reset();, вызывается, но делегаты не сбрасываются. Это ошибка, если не так, как я могу сбросить все делегаты?Как удалить все пользовательские QStyledItemDelegates из QListView?

Итерация по всем строкам и набор делегатов nullptr будет работать, но это не является правильным решением.

+0

Как вы устанавливаете делегатов? Можем ли мы увидеть код? 'QListView :: reset' - не сбрасывает модель. Делегаты не связаны с вашей моделью вообще. Возможно, вы недопонимаете Qt MVC. –

+0

setItemDelegateForRow (i, _selectedDelegate); – ManuelSchneid3r

+0

Вам действительно нужны разные делегаты для всех строк? Решение: подключитесь к слоту 'modelAboutToBeReset' и выполните очистку делегатов. –

ответ

0

Qt internally maintains карта пользовательских делегатов строк, но не дает доступа к ней. Я в конечном итоге поддерживать список себя и убрать их все, если мне нужно с помощью

void QAbstractItemView::setItemDelegateForRow(int row, QAbstractItemDelegate * delegate)

с nullptr в качестве делегата;

 Смежные вопросы

  • Нет связанных вопросов^_^