вот кусок кода
void MyScene::mousePressEvent(QGraphicsSceneMouseEvent* event)
{
if(m_flag && event->button() == Qt::LeftButton)
{
QGraphicsEllipseItem* ellipse = addEllipse(event->scenePos().x(), event->scenePos().y(), 50, 50);
ellipse->setCursor(Qt::OpenHandCursor);
m_undertow_vertex.push_front(ellipse);
}
else
{
if(event->button() == Qt::LeftButton)
{
x_line = event->scenePos().x();
y_line = event->scenePos().y();
pm_line = addLine(x_line, y_line, event->scenePos().x(), event->scenePos().y());
pm_ellipse_green = addEllipse(event->scenePos().x() - 4, event->scenePos().y() - 4
, 8, 8, QPen(Qt::green), QBrush(Qt::green));
QGraphicsEllipseItem* ellipse_red = addEllipse(event->scenePos().x() - 4, event->scenePos().y() - 4
, 8, 8, QPen(Qt::red), QBrush(Qt::red));
QPair<QGraphicsLineItem*, red_green> tmp = { pm_line, { ellipse_red, pm_ellipse_green } };
m_undertow_arc.push_front(tmp);
}
}
}
все вроде получается, но когда выбираешь рисовать линию , программа немедленно закрывается...и еще заметил что если убрать метод mouseMoveEvent , то программа работает норм...почему программа ведет себя так? как это исправить ?