GrabBag/GrabBagApp/devstatus.h

85 lines
2.1 KiB
C
Raw Permalink Normal View History

2025-06-19 01:38:50 +08:00
#ifndef DEVSTATUS_H
#define DEVSTATUS_H
#include <QWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#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
// 设置相机名称方法
void setCamera1Name(const QString& name);
void setCamera2Name(const QString& name);
// 设置相机数量(用于控制相机二的显示和布局方向)
2025-06-19 01:38:50 +08:00
void setCameraCount(int cameraCount);
// 事件过滤器
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;
// 当前选中的相机索引
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();
// 设置相机选中状态的样式
void setCameraSelectedStyle(int cameraIndex);
// 布局管理的私有成员函数
void setVerticalLayout();
void setHorizontalLayoutForSingleCamera();
void adjustFramesForVerticalLayout();
void adjustFramesForSingleCameraHorizontalLayout();
// 初始化点击事件
void initClickEvents();
// 更新相机显示文本的私有方法
void updateCamera1DisplayText(bool isConnected);
void updateCamera2DisplayText(bool isConnected);
2025-06-19 01:38:50 +08:00
};
#endif // DEVSTATUS_H