boundingRectangle инициализация класса QGraphicsItem - PullRequest
0 голосов
/ 17 марта 2019

Чтобы создать новый элемент QGraphicsItem, мы должны создать подкласс и переопределить boundingRect ():

QRectF CircleItem::boundingRect() const
{
     qreal penWidth = 1;
     return QRectF(-radius - penWidth / 2, -radius - penWidth / 2,
              diameter + penWidth, diameter + penWidth);
}

Но в этом случае у нас есть прямоугольник с new_radius = (радиус + диаметр) / 2?

В примерах Nodes говорится, что

QRectF Node::boundingRect() const
{
     qreal adjust = 2;
     return QRectF( -10 - adjust, -10 - adjust, 23 + adjust, 23 + adjust);
}

Qt document: ограничивающий прямоугольник узла - это прямоугольник размером 20x20 с центром вокруг его начала (0, 0), отрегулированный на 2 единицы во всех направлениях, чтобы компенсировать контур узла на 3 единицы вниз и вправо, чтобы освободить место для простой тени.

Почему размер 20х20, а не 25х25? Что я пропустил?

...