QStyledItemDelegate не отображает данные модели в QTreeView |
Здравствуйте, гость ( Вход | Регистрация )
QStyledItemDelegate не отображает данные модели в QTreeView |
ivan |
21.10.2015, 10:11
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 21.10.2015 Пользователь №: 4465 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне необходимо поменять редактор для определенных элементов в TreeView. Понаследовался от QStyledItemDelegate, не переопределяя метод paint(). Установил делегат для TreeView. Перестали отображаться данные модели. Смотрю отладчиком - в модели данные есть. Переопределил метод paint() в делегате.
Смотрю отладчиком - метод не вызывается вообще. В чем может быть причина? |
|
|
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 |
Уже разобрался. Делегат создавался в конструкторе формы на стеке. При выходе из функции он, разумеется, разрушался. Создал объект в куче - и проблема ушла. В общем, нужно больше спать. Спасибо за помощь.
|
|
|
Текстовая версия | Сейчас: 27.11.2024, 23:19 |