Я пытаюсь нарисовать несколько точек в 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
, Координаты других точек сохраняются в векторе, но эти точки, нанесенные впоследствии, не видны на сцене.
Как добиться того, чтобы все точки были нарисованы на сцене?
Задача ещё не решена.