JMouseMonitorThread.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // *****************************************************************************
  2. // 版权所有(C)2023~2099 上海骄成超声波技术有限公司
  3. // 保留所有权利
  4. // *****************************************************************************
  5. // 作者 : 杨坚
  6. // 版本 : 1.0
  7. // 功能说明:
  8. // 鼠标监控-全局的,可能后面还有其他地方使用,所以..
  9. // *****************************************************************************
  10. #include <QThread>
  11. #include <QMutex>
  12. #include <QStack>
  13. #include <QCursor>
  14. #include <QWidget>
  15. class JMouseMonitorThread : public QThread {
  16. Q_OBJECT
  17. public:
  18. explicit JMouseMonitorThread(QObject* parent = nullptr);
  19. void setLockCenter(const QPoint center);
  20. void unlock();
  21. void stop();
  22. void ConvertUIClickToImagePixel(int uiX, int uiY, int& imageX, int& imageY);
  23. void ConvertUIClickToImagePixel2(int uiX, int uiY, int& imageX, int& imageY);
  24. signals:
  25. void MouseMovedSlg(const QPoint& delta);
  26. void RequestCursorMoveSlg(const QPoint& pos);
  27. protected:
  28. void run() override;
  29. private:
  30. QMutex m_mutex;
  31. QPoint m_lockCenter;
  32. bool m_locked;
  33. bool m_running;
  34. };