#ifndef DEVSTATUS_H #define DEVSTATUS_H #include #include #include #include #include #include #include #include namespace Ui { class devstatus; } class devstatus : public QWidget { Q_OBJECT public: explicit devstatus(QWidget *parent = nullptr); ~devstatus(); // 设备状态更新方法 void updateCamera1Status(bool isConnected); void updateCamera2Status(bool isConnected); void updateRobotStatus(bool isConnected); void updateSerialStatus(bool isConnected); // 设置相机名称方法 void setCamera1Name(const QString& name); void setCamera2Name(const QString& name); // 设置相机数量(用于控制相机二的显示和布局方向) void setCameraCount(int cameraCount); // 事件过滤器 bool eventFilter(QObject *obj, QEvent *event) override; signals: // 相机点击信号 void cameraClicked(int cameraIndex); private slots: // 相机点击槽函数 void onCamera1Clicked(); void onCamera2Clicked(); private: Ui::devstatus *ui; // 当前选中的相机索引 int m_selectedCameraIndex; // 相机名称 QString m_camera1Name; QString m_camera2Name; // 设置状态图片的私有成员函数 void setCameraStatusImage(QWidget* widget, bool isOnline); void setRobotStatusImage(QWidget* widget, bool isOnline); // 设置样式的私有成员函数 void setItemStyle(); // 设置相机选中状态的样式 void setCameraSelectedStyle(int cameraIndex); // 布局管理的私有成员函数 void setVerticalLayout(); void setHorizontalLayoutForSingleCamera(); void adjustFramesForVerticalLayout(); void adjustFramesForSingleCameraHorizontalLayout(); // 初始化点击事件 void initClickEvents(); // 更新相机显示文本的私有方法 void updateCamera1DisplayText(bool isConnected); void updateCamera2DisplayText(bool isConnected); }; #endif // DEVSTATUS_H