以下代码
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位)。
答案 0 :(得分:4)
QGraphicsItemGroup
也是QGraphicsItem
,因此您需要将其添加到场景中,以便绘制其子项。
答案 1 :(得分:4)
来自 QGraphicsItemGroup :
的Qt手册页构建项目组有两种方法。最简单也是最容易的 通用方法是传递项目列表(例如,所有选定项目) 到QGraphicsScene :: createItemGroup(),它返回一个新的 QGraphicsItemGroup项。另一种方法是手动构建一个 QGraphicsItemGroup项,将其添加到场景调用中 QGraphicsScene :: addItem(),然后手动将项添加到组中, 通过调用addToGroup()一次一个。
听起来你的代码需要调用QGraphicsScene :: addItem()。