mousemovewidget.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "mousemovewidget.h"
  2. #include <QMouseEvent>
  3. MouseMoveWidget::MouseMoveWidget(QWidget *parent) : QWidget(parent),m_pMouseStart(0,0),m_pHScrollBar(nullptr),m_pVScrollBar(nullptr)
  4. {
  5. }
  6. void MouseMoveWidget::SetScrollBar(QScrollBar *pHScrollBar, QScrollBar *pVScrollBar)
  7. {
  8. m_pHScrollBar=pHScrollBar;
  9. m_pVScrollBar=pVScrollBar;
  10. }
  11. void MouseMoveWidget::mouseMoveEvent(QMouseEvent *event)
  12. {
  13. if (event->buttons()&Qt::MouseButton::LeftButton)
  14. {
  15. QPoint delta = m_pMouseStart - event->pos();
  16. if(m_pHScrollBar)
  17. {
  18. int hValue =m_pHScrollBar->value();
  19. m_pHScrollBar->setValue(delta.x() + hValue);
  20. }
  21. if(m_pVScrollBar)
  22. {
  23. int vValue = m_pVScrollBar->value();
  24. m_pVScrollBar->setValue(delta.y() + vValue);
  25. }
  26. m_pMouseStart = event->pos();
  27. }
  28. }
  29. void MouseMoveWidget::mousePressEvent(QMouseEvent *event)
  30. {
  31. if (event->buttons() & Qt::MouseButton::LeftButton)
  32. {
  33. m_pMouseStart = event->pos();
  34. }
  35. QWidget::mousePressEvent(event);
  36. }