Добавление элемента в QGraphicsItemGroup делает его невидимым - PullRequest
2 голосов
/ 26 сентября 2011

код ниже

QGraphicsEllipseItem *ellipse = addEllipse(x, y, 6, 6, series_pen);
ellipse->translate(-ellipse->boundingRect().width() / 2,
                   -ellipse->boundingRect().height() / 2);
ellipse->setToolTip(label);

рисует QGraphicsEllipseItem на QGraphicsScene. Однако следующий код этого не делает:

QGraphicsEllipseItem *ellipse = addEllipse(x, y, 6, 6, series_pen);
ellipse->translate(-ellipse->boundingRect().width() / 2,
                   -ellipse->boundingRect().height() / 2);
ellipse->setToolTip(label);

QGraphicsItemGroup *g = new QGraphicsItemGroup;
g->addToGroup(ellipse);

Что не так, если я добавлю QGraphicsItem в QGraphicsItemGroup?

Я использую Qt Creator 2.2.1, Qt 4.7.4 (32 бит) в Windows 7.

Ответы [ 2 ]

4 голосов
/ 26 сентября 2011

На странице руководства Qt для QGraphicsItemGroup :

Есть два способа создать группу предметов. Самый простой и самый Общий подход состоит в том, чтобы передать список элементов (например, все выбранные элементы) в QGraphicsScene :: createItemGroup (), которая возвращает новый Элемент QGraphicsItemGroup. Другой подход состоит в том, чтобы вручную построить Элемент QGraphicsItemGroup, добавьте его в сцену вызова QGraphicsScene :: addItem (), а затем добавьте элементы в группу вручную, по одному, вызывая addToGroup ().

Похоже, ваш код должен вызывать QGraphicsScene :: addItem ().

4 голосов
/ 26 сентября 2011

QGraphicsItemGroup также является QGraphicsItem, поэтому вам необходимо добавить его в сцену, чтобы нарисовать его потомков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...