将项添加到QGraphicsItemGroup使其不可见

时间:2011-09-26 00:51:44

标签: c++ qt

以下代码

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,会出现什么问题?

我在Windows 7上使用Qt Creator 2.2.1,Qt 4.7.4(32位)。

2 个答案:

答案 0 :(得分:4)

QGraphicsItemGroup也是QGraphicsItem,因此您需要将其添加到场景中,以便绘制其子项。

答案 1 :(得分:4)

来自 QGraphicsItemGroup

的Qt手册页
  

构建项目组有两种方法。最简单也是最容易的   通用方法是传递项目列表(例如,所有选定项目)   到QGraphicsScene :: createItemGroup(),它返回一个新的   QGraphicsItemGroup项。另一种方法是手动构建一个   QGraphicsItemGroup项,将其添加到场景调用中   QGraphicsScene :: addItem(),然后手动将项添加到组中,   通过调用addToGroup()一次一个。

听起来你的代码需要调用QGraphicsScene :: addItem()。