#ifndef CALIBVIEWMAINWINDOW_H #define CALIBVIEWMAINWINDOW_H #include #include #include #include #include "IHandEyeCalib.h" class CalibDataWidget; class CalibResultWidget; /** * @brief 手眼标定测试工具主窗口 * 用于测试 HandEyeCalib 模块的各项功能 */ class CalibViewMainWindow : public QMainWindow { Q_OBJECT public: explicit CalibViewMainWindow(QWidget* parent = nullptr); ~CalibViewMainWindow() override; signals: /** * @brief 标定完成信号 */ void calibrationCompleted(const HECCalibResult& result); private slots: /** * @brief 执行 Eye-To-Hand 标定 */ void onEyeToHandCalib(); /** * @brief 执行 Eye-In-Hand 标定 */ void onEyeInHandCalib(); /** * @brief 执行坐标变换测试 */ void onTransformTest(); /** * @brief 执行欧拉角转换测试 */ void onEulerTest(); /** * @brief 清除所有数据 */ void onClearAll(); /** * @brief 加载测试数据 */ void onLoadTestData(); /** * @brief 保存标定结果 */ void onSaveResult(); /** * @brief 加载标定结果 */ void onLoadResult(); private: /** * @brief 初始化界面 */ void setupUI(); /** * @brief 创建菜单栏 */ void createMenuBar(); /** * @brief 创建工具栏 */ void createToolBar(); /** * @brief 更新状态栏 */ void updateStatusBar(const QString& message); // 标定实例 IHandEyeCalib* m_calib; // 标签页控件 QTabWidget* m_tabWidget; // 数据输入控件 CalibDataWidget* m_dataWidget; // 结果显示控件 CalibResultWidget* m_resultWidget; // 当前标定结果 HECCalibResult m_currentResult; bool m_hasResult; }; #endif // CALIBVIEWMAINWINDOW_H