Название: (РЕШЕНО) Проблема с обрезкой QGraphicsItem [Qt4] Отправлено: Crazy Sage от Апрель 07, 2015, 10:32 Доброго дня. Возникла проблема, никак не могу с ней разобраться. Есть класс унаследованный от QGraphicsItem, который должен отрисовывать окружность (чистый addEllipse не подходит, т.к. есть доп. функционал), ему устанавливаются ширина лини и радиус круга, при отрисовке справа и снизу не перерисовывается несколько пикселей, пока не случится полной перерисовки сцены (на картинке желтое - круг нормально отрисовавшийся при прокрутке QGraphicsView, розовое - та часть, которая перерисовалась при наведении мышки и смене цвета. Центр рисуется отдельным классом, объект которого является дочерним к объекту окружности.
(https://photos-5.dropbox.com/t/2/AABM2kM2bYaXdwPfwSwHpNcG0Kdi38ovcn4kAkQUQzD0UQ/12/25337202/png/1024x768/3/1428397200/0/2/circle.png/CPK6igwgASACIAMoASgC/lkFJ8H6OhPGdWg5HFnBMF4gdVZGH8k7EY2uizzFxtyM) Изначально думал, что дело в boundingRect, но я расширял его с огромным запасом (+100 пикселей в каждую сторону) и это никак не влияло. Помогите найти, где ошибка (подозреваю, что она тупая и банальная, но не вижу её в упор). Код класса: Код: void CircleItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget) Название: Re: Проблема с обрезкой QGraphicsItem [Qt4] Отправлено: GreatSnake от Апрель 07, 2015, 11:38 Увеличь радиус в shape().
Название: Re: Проблема с обрезкой QGraphicsItem [Qt4] Отправлено: Crazy Sage от Апрель 07, 2015, 12:23 Ошибка действительно оказалась тупейшая, и из-за этого плохообнаружимая.
Надо было и для ширины и для высоты shape и boundingRect offset умножать на два вместе с радиусом. |