Russian Qt Forum

Qt => Model-View (MV) => Тема начата: ieroglif от Май 07, 2011, 01:20



Название: [РЕШЕНО]QItemDelegate::paint рисуется только в одной ячейке таблицы
Отправлено: ieroglif от Май 07, 2011, 01:20
Код
C++ (Qt)
void GUI::IDLabel::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
 
   QLabel l(index.data(Qt::DisplayRole).toString());
   l.adjustSize();
   painter->save();
   painter->setRenderHints(QPainter::Antialiasing,true);
   l.render(painter->device());
   painter->restore();
}
 
.....
 
someTableView->setItemDelegate(new GUI::IDLabel());
 
в результате делегат отрисовывается только в первой ячейке первой строки.
причём если кликать мышкой по остальным ячейкам - время от времени в первой же ячейке отображаются данные из кликнутой ячейки (потом возвращается на своё значение). в остальных ячейчах вообще пусто и не ясно - есть там вообще делегат или нет :(

Делегат делаю что бы мог отображать html код.
гуглил много, форум читаю, ответ ищу, может есть решение готовое? или предположение о причинах моего косяка?


Название: Re: QItemDelegate::paint рисуется только в одной ячейке таблицы
Отправлено: ieroglif от Май 07, 2011, 03:26
проблема решена, ответ нашёл тут: http://www.prog.org.ru/topic_6102_0.html