SingleCameraOperationWnd.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #pragma once
  2. #ifndef SINGLECAMERAOPERATIONWND_H
  3. #define SINGLECAMERAOPERATIONWND_H
  4. #include <QMainWindow>
  5. #include <QSlider>
  6. #include <QLineEdit>
  7. #include "CameraMaterialGroupWnd/MaterialWindow/Wafer.h"
  8. #include "CameraMaterialGroupWnd/MaterialWindow/Waffle.h"
  9. #include "CameraMaterialGroupWnd/MaterialWindow/MaterialBox.h"
  10. #include "CameraDataHandleAndShow.h"
  11. #include "CameraMaterialGroupWnd/CameraImage/CameraImageHandler.h"
  12. #include "CameraMaterialGroupWnd/MaterialWindow/DraggableLine.h"
  13. #include "JOriginalMainWnd.h"
  14. namespace Ui {
  15. class SingleCameraOperationWnd;
  16. }
  17. class SingleCameraOperationWnd : public JOriginalMainWnd
  18. {
  19. Q_OBJECT
  20. public:
  21. explicit SingleCameraOperationWnd(QWidget *parent = nullptr);
  22. ~SingleCameraOperationWnd();
  23. void initFrom();
  24. void connectSliderAndLineEdit(QSlider* slider, QLineEdit* lineEdit);
  25. void initSliders();
  26. void initLineEdits();
  27. void initProgressBar();
  28. // void saveSliderStates();
  29. // void loadSliderStates();
  30. void closeEvent(QCloseEvent *event) override;
  31. void loadGroupSettings(int Id, int Index);
  32. void clearLayout(); // 清除大窗口上当前的布局
  33. void WaferWidget(); // 圆晶
  34. void WaffleWidget(); // 华夫盒
  35. void MaterialBoxWidget(); // 料盒
  36. void startCamera(int cameraId);
  37. void stopCamera(int cameraId);
  38. void updateImage(const QImage&image);
  39. public slots: // 确保这里声明了槽函数
  40. void onComboBoxIndexChanged(int index); // 确保签名匹配
  41. QString getImagePathFromIndex(int index);
  42. void handleDoubleClick();
  43. void showAndHideButton();
  44. void on_DatacomboBox_currentIndexChanged(int index);
  45. void handleComBoxChange(int groupId,int index);
  46. void loadLiveVedio();
  47. protected:
  48. void wheelEvent(QWheelEvent *event) override;
  49. void loadSettings();
  50. void checkSettings();
  51. void showEvent(QShowEvent *event) override;
  52. void hideEvent(QHideEvent *event) override;
  53. private slots:
  54. void on_ZoomUpButton_clicked();
  55. QPixmap getCurrentPixmap() const {
  56. return currentPixmap;
  57. }
  58. void on_ZoomOutButton_clicked();
  59. void on_RulerButton_clicked();
  60. public:
  61. /**必须绑定它, 没必要一直new ,只是控制
  62. */
  63. virtual void InitMainCameraBind(CameraBind* pCameraBind);
  64. virtual void UpdateCameraDisplay0(int iCameraId, JVision::ImageInfo imageData);
  65. virtual void UpdateCameraDisplay1(int iCameraId, JVision::ImageInfo imageData);
  66. virtual void UpdateCameraDisplay2(int iCameraId, JVision::ImageInfo imageData);
  67. virtual void UpdateCameraDisplay3(int iCameraId, JVision::ImageInfo imageData);
  68. virtual void UpdateCameraDisplay4(int iCameraId, JVision::ImageInfo imageData);
  69. private :
  70. Ui::SingleCameraOperationWnd *ui;
  71. QPixmap currentPixmap;
  72. qreal scaleFactor;
  73. int lastGroupId = -1;
  74. int lastIndex = -1;
  75. Wafer *wafer; // 声明Wafer指针
  76. Waffle *waffle; // 声明Waffle指针
  77. MaterialBox *materialbox; // 声明materialbox指针
  78. bool isShow;
  79. ImageGrabber *m_grabber;
  80. QMap<int, Group*> groupMap;
  81. int currentCameraId;
  82. QMap<int, Wafer*> waferMap;
  83. QMap<int, Waffle*> waffleMap;
  84. QMap<int, MaterialBox*> materialBoxMap;
  85. OperateMode currentMode = ModeImage;
  86. QGraphicsView *currentView = nullptr;
  87. QPoint mousePos;
  88. double previousScaleFactor;
  89. void updateScale(double newScaleFactor); // 更新缩放比例
  90. void applyScale(); // 应用缩放
  91. bool liveClick;
  92. };
  93. #endif // SINGLECAMERAOPERATIONWND_H