Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Roma_F от Январь 18, 2013, 22:11



Название: QGraphicsScene - перерисовка штриховых линий (dashPattern & cosmetic)
Отправлено: Roma_F от Январь 18, 2013, 22:11
Здравствуйте.

Столкнулся с неприятной проблемой.
Суть: при перемещении одного итема над другим штриховые линии (setDashPattern(...), cosmetic=true) перекрываемого некорректно перерисовываются. BoundingRect вычисляется правильно.

Проблему можно обойти задав FullViewportUpdate или используя для вывода QGLWidget, но на слабых машинах оба способа ощутимо снижают производительность.
Эффект также перестаёт проявляться если отключить cosmetic. Но тогда придётся динамически менять толщину, так как активно используется масштабирование. Да и линия выглядит похуже.

Версии Qt: 4.7.4, 4.8.4 (mingw 4.6.3); 5.0.0 (msvc2010). Win7x64/XPx86.
На 4.8.4 эффект заметнее.

В аттаче простой тестовый проект.

Спасибо.