// ***************************************************************************** // 版权所有(C)2023~2099 上海骄成超声波技术有限公司 // 保留所有权利 // ***************************************************************************** // 作者 : 杨坚 // 版本 : 1.0 // 功能说明: // 当前类为了执行通用函数 // ***************************************************************************** #ifndef __JORIGINALMAINWND_H__ #define __JORIGINALMAINWND_H__ 1 #include #include #include #include "CameraMaterialGroupWnd/CameraImage/CameraImageHandler.h" #include "Src/CameraBind.h" // 定义函数指针类型 // 函数指针类型 using FunSignaPo = std::function; using FunSignaPoA = void (*)(int, JVision::ImageInfo); using FunSlotPo = std::function; using FunSlotPoA = void (*)(); // 模板函数传递 struct STR_TEMPLATE { QScrollArea* pView; std::vector veSlotFun; // 曹函数 std::vector veSignalFun; // 信号 }; // 当前选择的Group struct ST_CURRENT_SELECT_GROUP { QList liGroup; // 当前窗口所有的Group /**当前选中的 */ Group* pSelectGroup; /**当前相机ID */ int nCurrentCameraId; int nGroupId; /**当前选中左边,右边大窗口 */ int nSelectLeft1; bool isBond; /**绑定次数 */ int nBindNumber; }; class JOriginalMainWnd: public QMainWindow { Q_OBJECT public: explicit JOriginalMainWnd(QWidget* parent = nullptr); ~JOriginalMainWnd(); public: /**必须绑定它, 没必要一直new ,只是控制 */ virtual void InitMainCameraBind(CameraBind* pCameraBind) = 0; virtual void UpdateCameraDisplay0(int iCameraId, JVision::ImageInfo imageData) = 0; virtual void UpdateCameraDisplay1(int iCameraId, JVision::ImageInfo imageData) = 0; virtual void UpdateCameraDisplay2(int iCameraId, JVision::ImageInfo imageData) = 0; virtual void UpdateCameraDisplay3(int iCameraId, JVision::ImageInfo imageData) = 0; virtual void UpdateCameraDisplay4(int iCameraId, JVision::ImageInfo imageData) = 0; /**做绑定释放 */ // virtual void DelBind() = 0; public: // 通用模板函数 template void InitAllCamerPage(STR_TEMPLATE strFun,Y Fun); // 创建通用模板 /* template using CameraImageHandlera = void (Y::*)(const T&);*/ template void SwitchToConfigAAAAA(void (Y::* switchMethod)(const T&)); public: std::vector> m_manager; /**用于管理所有的控制, */ CameraBind* m_pMainCameraBind = nullptr; }; template void JOriginalMainWnd::SwitchToConfigAAAAA(void (Y::* switchMethod)(const T&)) { int A = 10; } #endif //__JORIGINALMAINWND_H__