Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: alexman от Ноябрь 22, 2011, 11:48



Название: Искажения при скролле айтема с кешем DeviceCoordinateCache.
Отправлено: alexman от Ноябрь 22, 2011, 11:48
Есть айтем с кешем DeviceCoordinateCache. При рисовке отображаются примитивы: квадратики, крестики... При скролле картинка искажается (например, квадратики растягиваются). Что можно сделать в этой ситуации?


Название: Re: Искажения при скролле айтема с кешем DeviceCoordinateCache.
Отправлено: daimon от Ноябрь 30, 2011, 03:19
Добавил рисование текста в функции paint для itema и привязал начало рисование этого текста к точке, где распологается итем; так вот лагает перерисовка, если резко начинаю двигать итем, остаётся шлейф от текста. Как решить проблему?


Код
C++ (Qt)
void Edge::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
{
   if (!source || !dest)
       return;
 
   QLineF line(sourcePoint, destPoint);
   if (qFuzzyCompare(line.length(), qreal(0.)))
       return;
 
   painter->setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
   painter->drawLine(line);
 
painter->drawText(sourcePoint,"dfdff");
 
}
 


Название: Re: Искажения при скролле айтема с кешем DeviceCoordinateCache.
Отправлено: alexman от Ноябрь 30, 2011, 09:08
Возможно boundingRect неверный.