crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QStyledItemDelegate не отображает данные модели в QTreeView
ivan
  опции профиля:
сообщение 21.10.2015, 10:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 21.10.2015
Пользователь №: 4465

Спасибо сказали: 0 раз(а)




Репутация:   0  


Мне необходимо поменять редактор для определенных элементов в TreeView. Понаследовался от QStyledItemDelegate, не переопределяя метод paint(). Установил делегат для TreeView. Перестали отображаться данные модели. Смотрю отладчиком - в модели данные есть. Переопределил метод paint() в делегате.
void PlaceChooseDelegate::paint(QPainter *painter,
                                const QStyleOptionViewItem &option,
                                const QModelIndex &index) const
{
  QStyledItemDelegate::paint(painter,option,index);
}

Смотрю отладчиком - метод не вызывается вообще. В чем может быть причина?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 21.10.2015, 11:30
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


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

paint должен вызываться, посмотри в отладчике сам объект делегата создаётся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ivan
  опции профиля:
сообщение 21.10.2015, 13:55
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 21.10.2015
Пользователь №: 4465

Спасибо сказали: 0 раз(а)




Репутация:   0  


Уже разобрался. Делегат создавался в конструкторе формы на стеке. При выходе из функции он, разумеется, разрушался. Создал объект в куче - и проблема ушла. В общем, нужно больше спать. Спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 23:19