void plotter::mouseMoveEvent(QMouseEvent *event) { if (rubberBandIsShown) { updateRubberBandRegion(); rubberBandRect.setBottomRight(event->pos()); updateRubberBandRegion(); } }
void Plotter::mouseMoveEvent(QMouseEvent *event) { if( m_bRubberbandDrag == false) return; if(rubberBandIsShown){ updateRubberBandRegion(); rubberBandRect.setBottomRight(event->pos()); updateRubberBandRegion(); } }
void plotter::mouseReleaseEvent(QMouseEvent *event) { if ((event->button() == Qt::LeftButton) && rubberBandIsShown) { rubberBandIsShown = false; updateRubberBandRegion(); unsetCursor(); QRect rect = rubberBandRect.normalized(); if (rect.width() < 4 || rect.height() < 4) return; rect.translate(-Margin, -Margin); PlotSettings prevSettings = zoomStack[curZoom]; PlotSettings settings; double dx = prevSettings.spanX() / (width() - 2 * Margin); double dy = prevSettings.spanY() / (height() - 2 * Margin); settings.minX = prevSettings.minX + dx * rect.left(); settings.maxX = prevSettings.minX + dx * rect.right(); settings.minY = prevSettings.maxY - dy * rect.bottom(); settings.maxY = prevSettings.maxY - dy * rect.top(); settings.adjust(); zoomStack.resize(curZoom + 1); zoomStack.append(settings); zoomIn(); } }
void Plotter::mousePressEvent(QMouseEvent *event) { QRect rect(Margin, Margin, width() - 2 * Margin, height() - 2 * Margin); if (event->button() == Qt::LeftButton) { if (rect.contains(event->pos())) { rubberBandIsShown = true; rubberBandRect.setTopLeft(event->pos()); rubberBandRect.setBottomRight(event->pos()); updateRubberBandRegion(); setCursor(Qt::CrossCursor); } } }
void Plotter::mousePressEvent(QMouseEvent *event) { if( m_bRubberbandDrag == false) return; QRect rect(Margin,Margin,width()-2*Margin,height()-2*Margin); if(event->button() == Qt::LeftButton) { if(rect.contains(event->pos())) { rubberBandIsShown = true; QPoint l_objValues = event->pos(); if((l_objValues.x() < width()- 2*Margin) && (l_objValues.y() < height()- 2*Margin )) { rubberBandRect.setTopLeft(event->pos()); rubberBandRect.setBottomRight(event->pos()); updateRubberBandRegion(); setCursor(Qt::CrossCursor); } } } }
void Plotter::keyPressEvent(QKeyEvent *event) { switch(event->key()) { case Qt::Key_Right: if(rubberBandRect.x() < this->width()-(rubberBandRect.width()-10)) { rubberBandRect.setLeft(rubberBandRect.x() + 10); rubberBandRect.setWidth(rubberBandRect.width()+10); updateRubberBandRegion(); } break; case Qt::Key_Left: if(rubberBandRect.x() > 10){ rubberBandRect.setLeft(rubberBandRect.x() - 10); rubberBandRect.setWidth(rubberBandRect.width()-10); updateRubberBandRegion(); } break; case Qt::Key_Down: if(rubberBandRect.y() < this->height()-rubberBandRect.height()){ rubberBandRect.setTop(rubberBandRect.y() + 10); rubberBandRect.setHeight(rubberBandRect.height()+10); updateRubberBandRegion(); } break; case Qt::Key_Up: if(rubberBandRect.y() >0){ rubberBandRect.setTop(rubberBandRect.y() - 10); rubberBandRect.setHeight(rubberBandRect.height()-10); updateRubberBandRegion(); } break; default: QWidget::keyPressEvent(event); } QRect rect = rubberBandRect.normalized(); if(rect.width() < 4 || rect.height() < 4 ) { return; } rect.translate(-Margin,-Margin); PlotSettings prevSettings = zoomStack[curZoom]; PlotSettings settings; settings.m_nOffset = prevSettings.m_nOffset; double dx = prevSettings.spanX() / (width()-2*Margin); double dy = prevSettings.spanY() / (height()-2*Margin); settings.minX = prevSettings.minX + dx * rect.left(); settings.maxX = prevSettings.minX + dx * rect.right(); settings.minY = prevSettings.maxY - dy * rect.bottom(); settings.maxY = prevSettings.maxY - dy * rect.top(); settings.adjust(); PlotSettings *pTemp = new PlotSettings(); pTemp = &settings; zoomStack.resize(curZoom + 1); zoomStack.append(settings); refreshPixmap(); emit moveWindow(rubberBandRect,settings); }