У меня есть данные, организованные как дерево. Соответственно, есть переопределённая модель, которая неплохо справляется с их отображением: при создании индексов, с помощью createIndex, последним аргументом я добавляю указатель на данные. Но. Проблема в том, что данные обёрнуты в shared_ptr и вот так хранить голый указатель мне совершенно не нравится.Есть ли какие-нибудь способы? или придётся заводить ещё некий словарь а-ля QMap<quintptr, weak_ptr>, и в QModelIndex хранить некий quinptr?
мне всё-таки кажется, что для элементов модели ни к чему умные указатели, потому-что временем жизни объекта должна управлять модель. Ну, исключение тут, пожалуй, некая прокси-модель, которая просто предоставляет доступ через модельные интерфейсы к неким внешним данным. В этом случае вами же предложенный вариант с мэпом по-моему неплох.
в моём случае модель не является владельцем данных: в её конструктор передаётся ссылка на источник
Обсуждают сегодня