Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hordi от Ноябрь 17, 2009, 16:50



Название: Не работает перерисовка QHeaderView
Отправлено: Hordi от Ноябрь 17, 2009, 16:50
Необходимо в секции хидера нарисовать иконку и т.п. Юзаю нижеприведенный код и не вижу изменений. Стоит закомментировать родительскую отрисовку - сразу вижу свое рисование, но мне нужно сохранить текущий вид, т.е. если упростить - то просто нарисовать иконку поверх текущего...

Код:
void DetailsHeaderView::paintSection( QPainter* painter, const QRect& rect, int logicalIndex )const
{
  QHeaderView::paintSection(painter,rect,logicalIndex);

  if(0==logicalIndex){
    QPixmap pxm(":/images/xxx.png");

    int w = sectionSize(logicalIndex);

    int dx = (w-pxm.width())/2;

    QRect rct(sectionViewportPosition(logicalIndex)+dx,0,pxm.width(),pxm.height());
   
    painter->drawPixmap(rct,pxm);
  }
}


Название: Re: Не работает перерисовка QHeaderView
Отправлено: Barmaglodd от Ноябрь 18, 2009, 09:07
Хм ... значит этот косяк ещё не исправили.

painter->setClipping(false);
после
QHeaderView::paintSection(painter,rect,logicalIndex);


Название: Re: Не работает перерисовка QHeaderView
Отправлено: Hordi от Ноябрь 18, 2009, 15:07
Спасибо, теперь работает.