#pragma once #ifndef SINGLECAMERAOPERATIONWND_H #define SINGLECAMERAOPERATIONWND_H #include #include #include #include "CameraMaterialGroupWnd/MaterialWindow/Wafer.h" #include "CameraMaterialGroupWnd/MaterialWindow/Waffle.h" #include "CameraMaterialGroupWnd/MaterialWindow/MaterialBox.h" #include "CameraDataHandleAndShow.h" #include "CameraMaterialGroupWnd/CameraImage/CameraImageHandler.h" #include "CameraMaterialGroupWnd/MaterialWindow/DraggableLine.h" #include "JOriginalMainWnd.h" namespace Ui { class SingleCameraOperationWnd; } class SingleCameraOperationWnd : public JOriginalMainWnd { Q_OBJECT public: explicit SingleCameraOperationWnd(QWidget* parent = nullptr); ~SingleCameraOperationWnd(); void initFrom(); void closeEvent(QCloseEvent* event) override; void updateImage(const QImage& image); void updateMaterialWidget(int materialWndType, int groupId); //封装绑定函数 void BindImageOrMaterial(int index); //保存信息 void saveInfoOfLast(); void initWidget(); void UpdataLightJoystickSwitchPage(int groupId, bool isShow); public slots: // 确保这里声明了槽函数 QString getImagePathFromIndex(int index); //void on_DatacomboBox_currentIndexChanged(int index); void GetGroupImageShowSignals(const QPixmap& imageData); protected: void wheelEvent(QWheelEvent* event) override; void checkSettings(int groupId, int index); void showEvent(QShowEvent* event) override; void hideEvent(QHideEvent* event) override; private slots: void GetCurrentSelectSlots(int groupId, int nIndex); QPixmap getCurrentPixmap() const { return currentPixmap; } public: /**必须绑定它, 没必要一直new ,只是控制 */ virtual void InitMainCameraBind(CameraBind* pCameraBind); void UnCameraBind() override; void CameraConnectUpdateImageFun(int nIndex, Group* widget, bool isUnCameraBind = false) override; virtual void UpdateCameraDisplay0(int iCameraId, JVision::ImageInfo imageData); virtual void UpdateCameraDisplay1(int iCameraId, JVision::ImageInfo imageData); virtual void UpdateCameraDisplay2(int iCameraId, JVision::ImageInfo imageData); virtual void UpdateCameraDisplay3(int iCameraId, JVision::ImageInfo imageData); virtual void UpdateCameraDisplay4(int iCameraId, JVision::ImageInfo imageData); signals: void UpDataImageShowSignals0(const QPixmap& imageData); void UpDataImageShowSignals1(const QPixmap& imageData); void UpDataImageShowSignals2(const QPixmap& imageData); void UpDataImageShowSignals3(const QPixmap& imageData); void UpDataImageShowSignals4(const QPixmap& imageData); private: Ui::SingleCameraOperationWnd* ui; QPixmap currentPixmap; qreal scaleFactor; int lastGroupId = -1; int lastIndex = -1; Wafer* wafer; // 声明Wafer指针 Waffle* waffle; // 声明Waffle指针 MaterialBox* materialbox; // 声明materialbox指针 Bond* bond; bool isShow; ImageGrabber* m_grabber; QMap groupMap; int currentCameraId; QMap waferMap; QMap waffleMap; QMap materialBoxMap; QMap bondMap; OperateMode currentMode = ModeImage; QGraphicsView* currentView = nullptr; QPoint mousePos; double previousScaleFactor; /**保存所有的后续使用 */ QStack m_allGroup; ST_CURRENT_SELECT_GROUP m_veCurrentSelectGroup; const int m_nImageIndex = 1; const int m_nMaterialIndex = 2; }; #endif // SINGLECAMERAOPERATIONWND_H