76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
|
|
#ifndef DIALOGCAMERA_H
|
||
|
|
#define DIALOGCAMERA_H
|
||
|
|
|
||
|
|
#include <QDialog>
|
||
|
|
#include <QTableWidget>
|
||
|
|
#include <QPushButton>
|
||
|
|
#include <vector>
|
||
|
|
#include <string>
|
||
|
|
#include "IVrWheelMeasureConfig.h"
|
||
|
|
|
||
|
|
// 前向声明
|
||
|
|
class WheelMeasurePresenter;
|
||
|
|
|
||
|
|
namespace Ui {
|
||
|
|
class DialogCamera;
|
||
|
|
}
|
||
|
|
|
||
|
|
class DialogCamera : public QDialog
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
|
||
|
|
public:
|
||
|
|
explicit DialogCamera(QWidget *parent = nullptr);
|
||
|
|
~DialogCamera();
|
||
|
|
|
||
|
|
// 设置Presenter用于访问配置
|
||
|
|
void SetPresenter(WheelMeasurePresenter* presenter);
|
||
|
|
|
||
|
|
// 获取配置的相机列表
|
||
|
|
std::vector<WheelCameraParam> GetCameraConfigs() const;
|
||
|
|
|
||
|
|
signals:
|
||
|
|
void configSaved();
|
||
|
|
|
||
|
|
private slots:
|
||
|
|
void on_btn_add_camera_clicked();
|
||
|
|
void on_btn_save_clicked();
|
||
|
|
void on_btn_cancel_clicked();
|
||
|
|
void onDeleteCameraClicked();
|
||
|
|
void onMoveUpClicked();
|
||
|
|
void onMoveDownClicked();
|
||
|
|
|
||
|
|
private:
|
||
|
|
// 初始化表格
|
||
|
|
void InitTable();
|
||
|
|
|
||
|
|
// 加载已有的相机配置
|
||
|
|
void LoadExistingCameras();
|
||
|
|
|
||
|
|
// 刷新相机列表显示
|
||
|
|
void RefreshCameraList();
|
||
|
|
|
||
|
|
// 添加相机到列表
|
||
|
|
bool AddCamera(const QString& name, const QString& ip);
|
||
|
|
|
||
|
|
// 删除相机
|
||
|
|
void RemoveCamera(int row);
|
||
|
|
|
||
|
|
// 验证IP地址格式
|
||
|
|
bool ValidateIPAddress(const QString& ip);
|
||
|
|
|
||
|
|
// 更新添加按钮状态
|
||
|
|
void UpdateAddButtonState();
|
||
|
|
|
||
|
|
// 保存配置到文件
|
||
|
|
bool SaveConfigToFile();
|
||
|
|
|
||
|
|
private:
|
||
|
|
Ui::DialogCamera *ui;
|
||
|
|
std::vector<WheelCameraParam> m_cameraConfigs; // 相机配置列表
|
||
|
|
const int MAX_CAMERAS = 4; // 最多支持4个相机
|
||
|
|
WheelMeasurePresenter* m_presenter = nullptr; // Presenter用于访问配置
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif // DIALOGCAMERA_H
|