我试图在鼠标点击时在graphicsscene
中绘制多个点。点类继承自QGraphicsItem
类。以下代码分别显示了绘画和鼠标事件。
void point:: paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
if(mPaintFlag){
QPen paintpen(Qt::red);
paintpen.setWidth(4);
QPointF p1;
p1.setX(x1);
p1.setY(y1);
painter->setPen(paintpen);
painter->drawPoint(p1);
update();
}
}
void point::mousePressEvent(QGraphicsSceneMouseEvent *e)
{
if(e->button()==Qt::LeftButton) {
if(mClick){
x1 = e->pos().x();
y1 = e->pos().y();
mClick = false;
mPaintFlag = true;
update();
}
_store.set_point(e->pos());
store_point.push_back(_store);
qDebug() << _store.getValue();
qDebug() << "Size of vector =" << store_point.size();
update();
}
}
绘制的每个点的坐标存储在矢量中。但我只能看到graphicsscene
中画的第一点。其他要点&#39;坐标存储在矢量中,但随后绘制的点在场景中不可见。
如何实现场景中绘制的所有点?