crossplatform.ru

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


  Ответ в QStyledItemDelegate не отображает данные модели в QTreeView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ivan Дата 21.10.2015, 13:55
  Уже разобрался. Делегат создавался в конструкторе формы на стеке. При выходе из функции он, разумеется, разрушался. Создал объект в куче - и проблема ушла. В общем, нужно больше спать. Спасибо за помощь.
ViGOur Дата 21.10.2015, 11:30
 
Цитата
Ожидается, что делегаты способны самостоятельно отрисовывать свое содержимое, реализовав функции paint() и sizeHint(). Однако, простые, основанные на виджетах, делегаты могут быть созданы как подкласс QItemDelegate вместо QAbstractItemDelegate, и получить преимущества реализации этих функций по умолчанию.
Классы делегатов

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

Смотрю отладчиком - метод не вызывается вообще. В чем может быть причина?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 20:01