2025-06-19 01:38:50 +08:00
|
|
|
#ifndef DEVSTATUS_H
|
|
|
|
|
#define DEVSTATUS_H
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
#include <QLabel>
|
2025-06-28 23:06:09 +08:00
|
|
|
#include <QVBoxLayout>
|
|
|
|
|
#include <QHBoxLayout>
|
2025-07-26 01:10:21 +08:00
|
|
|
#include <QEvent>
|
|
|
|
|
#include <QMouseEvent>
|
|
|
|
|
#include <QObject>
|
|
|
|
|
#include <QString>
|
2025-06-19 01:38:50 +08:00
|
|
|
|
|
|
|
|
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);
|
2025-07-23 01:35:14 +08:00
|
|
|
void updateSerialStatus(bool isConnected);
|
2025-06-19 01:38:50 +08:00
|
|
|
|
2025-07-26 01:10:21 +08:00
|
|
|
// 设置相机名称方法
|
|
|
|
|
void setCamera1Name(const QString& name);
|
|
|
|
|
void setCamera2Name(const QString& name);
|
|
|
|
|
|
2025-06-28 23:06:09 +08:00
|
|
|
// 设置相机数量(用于控制相机二的显示和布局方向)
|
2025-06-19 01:38:50 +08:00
|
|
|
void setCameraCount(int cameraCount);
|
2025-07-26 01:10:21 +08:00
|
|
|
|
|
|
|
|
// 事件过滤器
|
|
|
|
|
bool eventFilter(QObject *obj, QEvent *event) override;
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
// 相机点击信号
|
|
|
|
|
void cameraClicked(int cameraIndex);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
// 相机点击槽函数
|
|
|
|
|
void onCamera1Clicked();
|
|
|
|
|
void onCamera2Clicked();
|
2025-06-19 01:38:50 +08:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Ui::devstatus *ui;
|
|
|
|
|
|
2025-07-26 01:10:21 +08:00
|
|
|
// 当前选中的相机索引
|
|
|
|
|
int m_selectedCameraIndex;
|
|
|
|
|
|
|
|
|
|
// 相机名称
|
|
|
|
|
QString m_camera1Name;
|
|
|
|
|
QString m_camera2Name;
|
|
|
|
|
|
2025-06-19 01:38:50 +08:00
|
|
|
// 设置状态图片的私有成员函数
|
|
|
|
|
void setCameraStatusImage(QWidget* widget, bool isOnline);
|
|
|
|
|
void setRobotStatusImage(QWidget* widget, bool isOnline);
|
|
|
|
|
|
|
|
|
|
// 设置样式的私有成员函数
|
|
|
|
|
void setItemStyle();
|
2025-06-28 23:06:09 +08:00
|
|
|
|
2025-07-26 01:10:21 +08:00
|
|
|
// 设置相机选中状态的样式
|
|
|
|
|
void setCameraSelectedStyle(int cameraIndex);
|
|
|
|
|
|
2025-06-28 23:06:09 +08:00
|
|
|
// 布局管理的私有成员函数
|
|
|
|
|
void setVerticalLayout();
|
|
|
|
|
void setHorizontalLayoutForSingleCamera();
|
|
|
|
|
void adjustFramesForVerticalLayout();
|
|
|
|
|
void adjustFramesForSingleCameraHorizontalLayout();
|
2025-07-26 01:10:21 +08:00
|
|
|
|
|
|
|
|
// 初始化点击事件
|
|
|
|
|
void initClickEvents();
|
|
|
|
|
|
|
|
|
|
// 更新相机显示文本的私有方法
|
|
|
|
|
void updateCamera1DisplayText(bool isConnected);
|
|
|
|
|
void updateCamera2DisplayText(bool isConnected);
|
2025-06-19 01:38:50 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // DEVSTATUS_H
|