Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QStyledItemDelegate не отображает данные модели в QTreeView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
ivan
Мне необходимо поменять редактор для определенных элементов в TreeView. Понаследовался от QStyledItemDelegate, не переопределяя метод paint(). Установил делегат для TreeView. Перестали отображаться данные модели. Смотрю отладчиком - в модели данные есть. Переопределил метод paint() в делегате.
void PlaceChooseDelegate::paint(QPainter *painter,
                                const QStyleOptionViewItem &option,
                                const QModelIndex &index) const
{
  QStyledItemDelegate::paint(painter,option,index);
}

Смотрю отладчиком - метод не вызывается вообще. В чем может быть причина?
ViGOur
Цитата
Ожидается, что делегаты способны самостоятельно отрисовывать свое содержимое, реализовав функции paint() и sizeHint(). Однако, простые, основанные на виджетах, делегаты могут быть созданы как подкласс QItemDelegate вместо QAbstractItemDelegate, и получить преимущества реализации этих функций по умолчанию.
Классы делегатов

paint должен вызываться, посмотри в отладчике сам объект делегата создаётся?
ivan
Уже разобрался. Делегат создавался в конструкторе формы на стеке. При выходе из функции он, разумеется, разрушался. Создал объект в куче - и проблема ушла. В общем, нужно больше спать. Спасибо за помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.