void FrameLabel::mouseMoveEvent(QMouseEvent *ev) { if(_image.isNull()) return; // Save mouse cursor position QPointF tmpPoint = ev->pos(); setMouseCursorPos(tmpPoint); // Update box width and height if box drawing is in progress if(_draw) { switch(_drawMode) { case nooba::lineDraw: { drawingLine.setP2(toOriginalImage(tmpPoint)); break; } default: break; } } // Inform main window of mouse move event emit onMouseMoveEvent(); }
void FrameLabel::mouseReleaseEvent(QMouseEvent *ev) { if(_image.isNull()) return; // Update cursor position setMouseCursorPos(ev->pos()); qDebug() << getMouseCursorPos() << Q_FUNC_INFO; // On left mouse button release if(ev->button()==Qt::LeftButton) { // Set leftButtonRelease flag to TRUE mouseData.leftButtonRelease=true; if(_draw) { // Stop drawing box _draw=false; } } // On right mouse button release else if(ev->button()==Qt::RightButton) { _draw=false; _varName.clear(); _drawMode = nooba::noDraw; drawingLine = QLineF(); _color = QColor(Qt::transparent); } }
void FrameLabel::mousePressEvent(QMouseEvent *ev) { // Update cursor position setMouseCursorPos(ev->pos());; if(ev->button()==Qt::LeftButton) { // Start drawing box startPoint=ev->pos(); box=new QRect(startPoint.x(),startPoint.y(),0,0); drawBox=true; } } // mousePressEvent()
void FrameLabel::mouseMoveEvent(QMouseEvent *ev) { // Save mouse cursor position setMouseCursorPos(ev->pos()); // Update box width and height if box drawing is in progress if(drawBox) { box->setWidth(getMouseCursorPos().x()-startPoint.x()); box->setHeight(getMouseCursorPos().y()-startPoint.y()); } // Inform main window of mouse move event emit onMouseMoveEvent(); } // mouseMoveEvent()
void FrameLabel::mousePressEvent(QMouseEvent *ev) { if(_image.isNull()) return; // Update cursor position setMouseCursorPos(ev->pos());; if(ev->button()==Qt::LeftButton) { // Start drawing box if(_varName.isEmpty()) return; QPointF p1 = ev->pos(); // start point relative to original image. startPointOrg= toOriginalImage(p1); qDebug() << p1 << Q_FUNC_INFO; qDebug() << "org" << startPointOrg << Q_FUNC_INFO; switch(_drawMode) { case nooba::lineDraw: { _S_Line s_l = _lineMap.take(_varName); if(s_l._line.isNull()) { if(drawingLine.isNull()) { drawingLine = QLineF(startPointOrg, startPointOrg); } } else { drawingLine =s_l._line; } drawingLine.setPoints(startPointOrg, startPointOrg); _draw=true; break; } case nooba::boxDraw: { box = new QRect(startPointOrg.x(),startPointOrg.y(),0,0); _draw = true; break; } default: break; } } }
void FrameLabel::mouseReleaseEvent(QMouseEvent *ev) { // Update cursor position setMouseCursorPos(ev->pos()); // On left mouse button release if(ev->button()==Qt::LeftButton) { // Set leftButtonRelease flag to TRUE mouseData.leftButtonRelease=true; if(drawBox) { // Stop drawing box drawBox=false; // Save box dimensions mouseData.selectionBox.setX(box->left()); mouseData.selectionBox.setY(box->top()); mouseData.selectionBox.setWidth(box->width()); mouseData.selectionBox.setHeight(box->height()); // Set leftButtonRelease flag to TRUE mouseData.leftButtonRelease=true; // Inform main window of event emit newMouseData(mouseData); } // Set leftButtonRelease flag to FALSE mouseData.leftButtonRelease=false; } // On right mouse button release else if(ev->button()==Qt::RightButton) { // If user presses (and then releases) the right mouse button while drawing box, stop drawing box if(drawBox) drawBox=false; else { // Set rightButtonRelease flag to TRUE mouseData.rightButtonRelease=true; // Inform main window of event emit newMouseData(mouseData); // Set rightButtonRelease flag to FALSE mouseData.rightButtonRelease=false; } } } // mouseReleaseEvent()