无法在Qt中添加多个graphicsitem

时间:2014-08-12 14:39:37

标签: c++ qt paint qgraphicsitem

我试图在鼠标点击时在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;坐标存储在矢量中,但随后绘制的点在场景中不可见。

如何实现场景中绘制的所有点?

0 个答案:

没有答案