ChartsAndCamerasWnd.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #ifndef CHARTSANDCAMERASWND_H
  2. #define CHARTSANDCAMERASWND_H
  3. #include <QMainWindow>
  4. #include <QSlider>
  5. #include <QLineEdit>
  6. #include <QSettings>
  7. #include "chartline.h"
  8. #include "CameraMaterialGroupWnd/MaterialWindow/Wafer.h"
  9. #include "CameraMaterialGroupWnd/MaterialWindow/Waffle.h"
  10. #include "CameraMaterialGroupWnd/MaterialWindow/MaterialBox.h"
  11. #include "JOriginalMainWnd.h"
  12. namespace Ui {
  13. class ChartsAndCamerasWnd;
  14. }
  15. class ChartsAndCamerasWnd : public JOriginalMainWnd
  16. {
  17. Q_OBJECT
  18. public:
  19. explicit ChartsAndCamerasWnd(QWidget *parent = nullptr);
  20. ~ChartsAndCamerasWnd();
  21. void initFrom();
  22. void connectSliderAndLineEdit(QSlider* slider, QLineEdit* lineEdit);
  23. void initLineEdits();
  24. void initSliders();
  25. void initProgressBar();
  26. void showAndHide();
  27. protected:
  28. void wheelEvent(QWheelEvent *event) override;
  29. void loadSettings();
  30. void checkSettings();
  31. void loadGroupSettings(int Id, int Index);
  32. void showEvent(QShowEvent *event) override;
  33. void hideEvent(QHideEvent *event) override;
  34. void clearLayout(); // 清除大窗口上当前的布局
  35. void WaferWidget(int Id); // 圆晶
  36. void WaffleWidget(); // 华夫盒
  37. void MaterialBoxWidget(); // 料盒
  38. private:
  39. void InitMainCameraBind(CameraBind* pCameraBind) override;
  40. void UpdateCameraDisplay0(int iCameraId, JVision::ImageInfo imageData) override;
  41. void UpdateCameraDisplay1(int iCameraId, JVision::ImageInfo imageData) override;
  42. void UpdateCameraDisplay2(int iCameraId, JVision::ImageInfo imageData) override;
  43. void UpdateCameraDisplay3(int iCameraId, JVision::ImageInfo imageData) override;
  44. void UpdateCameraDisplay4(int iCameraId, JVision::ImageInfo imageData) override;
  45. public slots: // 确保这里声明了槽函数
  46. void handleDoubleClick();
  47. private slots:
  48. void on_ZoomUpButton_clicked();
  49. QPixmap getCurrentPixmap() const {
  50. return currentPixmap;
  51. }
  52. // 通用槽函数
  53. void on_CheckBox_clicked();
  54. void on_ZoomOutButton_clicked();
  55. // void on_GreenDiamondcheckBox_clicked();
  56. // void on_YellowDiamondcheckBox_clicked();
  57. // void on_BlackDiamondcheckBox_clicked();
  58. // void on_BlueDiamondcheckBox_clicked();
  59. // void on_BlueHorizontalLinecheckBox_clicked();
  60. // void on_BlueVerticalBarcheckBox_clicked();
  61. // void on_GreenVerticalBarcheckBox_clicked();
  62. // void on_PurpleVerticalBarcheckBox_clicked();
  63. // void on_RedDiamondcheckBox_clicked();
  64. // void on_RedHorizontalLinecheckBox_clicked();
  65. // void on_WhiteVerticalBarcheckBox_clicked();
  66. private:
  67. Ui::ChartsAndCamerasWnd *ui;
  68. // // 三个 ChartLine 实例
  69. // ChartLine *chartLine;
  70. // ChartLine *chartLine1;
  71. // ChartLine *chartLine2;
  72. // ChartLine 实例
  73. ChartLine *chartLine;
  74. ChartLine *chartLine1;
  75. ChartLine *chartLine2;
  76. // 存储所有系列信息
  77. QMap<QString, DataSeries> m_seriesMap;
  78. // 初始化系列信息
  79. void initializeSeriesInfo();
  80. QPixmap currentPixmap;
  81. qreal scaleFactor;
  82. double previousScaleFactor;
  83. int lastGroupId = -1;
  84. int lastIndex = -1;
  85. Wafer *wafer; // 声明Wafer指针
  86. Waffle *waffle; // 声明Waffle指针
  87. MaterialBox *materialbox; // 声明materialbox指针
  88. bool isShow;
  89. QMap<int, Wafer*> waferMap;
  90. QMap<int, Waffle*> waffleMap;
  91. QMap<int, MaterialBox*> materialBoxMap;
  92. OperateMode currentMode = ModeImage;
  93. QGraphicsView *currentView = nullptr;
  94. QPoint mousePos;
  95. void updateScale(double newScaleFactor); // 更新缩放比例
  96. void applyScale(); // 应用缩放
  97. };
  98. #endif // CHARTSANDCAMERASWND_H