# QT GUI 自定义路径修改方案 ## 快速修改步骤 ### 第1步: 添加头文件 在 `qt_gui_demo.cpp` 第15行后添加: ```cpp #include #include #include ``` ### 第2步: 添加路径选项 在第278行后添加两个选项: ```cpp path_combo_->addItem("Load from CSV"); path_combo_->addItem("Custom Spline"); ``` ### 第3步: 添加成员变量 在MainWindow类private部分最后添加: ```cpp PathCurve custom_path_; bool custom_path_loaded_ = false; ``` ### 第4步: 修改 generateControl 方法 在 `if (path_type == "Circle Arc")` 之前添加: ```cpp if (path_type == "Load from CSV") { QString filename = QFileDialog::getOpenFileName( this, "Open CSV", "", "CSV Files (*.csv)"); if (filename.isEmpty()) return; if (!path.loadFromCSV(filename.toStdString(), true)) { QMessageBox::warning(this, "Error", "Load failed!"); return; } QMessageBox::information(this, "OK", QString("%1 points loaded").arg(path.getPathPoints().size())); } else if (path_type == "Custom Spline") { bool ok; int n = QInputDialog::getInt(this, "Spline", "Key points:", 4, 2, 10, 1, &ok); if (!ok) return; std::vector kp; for (int i = 0; i < n; ++i) { double x = QInputDialog::getDouble(this, "Input", QString("P%1 X:").arg(i+1), i*3.0, -100, 100, 2, &ok); if (!ok) return; double y = QInputDialog::getDouble(this, "Input", QString("P%1 Y:").arg(i+1), (i%2)*3.0, -100, 100, 2, &ok); if (!ok) return; kp.push_back(PathPoint(x, y)); } path.generateSpline(kp, 200, 0.5); } ``` ## 完整代码参考 见: examples/qt_gui_demo.cpp 修改位置: - 行 15: 添加头文件 - 行 278: 添加选项 - 行 330: 修改方法 - 行 529: 添加变量 ## 编译运行 ```bash cd build cmake .. cmake --build . --config Release · 编译到Release ,默认是Debug ./agv_qt_gui ``` ## 使用说明 1. 选择 "Load from CSV" 2. 点击 "Generate Control" 3. 选择CSV文件 4. 点击 "Start Animation"