GrabBag/App/LapWeld/LapWeldApp/dialogalgoarg.cpp

103 lines
2.9 KiB
C++
Raw Normal View History

2025-09-18 23:49:32 +08:00
#include "dialogalgoarg.h"
#include "ui_dialogalgoarg.h"
#include <QMessageBox>
#include <QPushButton>
#include <QtCore/QCoreApplication>
#include <QtCore/QFileInfo>
#include <QtCore/QDir>
#include <QtCore/QStandardPaths>
#include <QtCore/QFile>
#include "PathManager.h"
DialogAlgoarg::DialogAlgoarg(IVrConfig* vrConfig, QWidget *parent)
: QDialog(parent)
, ui(new Ui::DialogAlgoarg)
, m_vrConfig(vrConfig)
{
ui->setupUi(this);
// 隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);
// 获取配置文件路径
m_configFilePath = PathManager::GetConfigFilePath();
// 从配置文件加载数据到界面
LoadConfigToUI();
}
DialogAlgoarg::~DialogAlgoarg()
{
delete ui;
}
void DialogAlgoarg::LoadConfigToUI()
{
if (!m_vrConfig) {
return;
}
try {
// 加载配置文件
m_configData = m_vrConfig->LoadConfig(m_configFilePath.toStdString());
// 将激光焊接参数加载到界面控件
const VrLapWeldParam& lapWeldParam = m_configData.algorithmParams.lapWeldParam;
// 设置参数到界面
ui->lineEdit_lapHeight->setText(QString::number(lapWeldParam.lapHeight));
ui->lineEdit_weldMinLen->setText(QString::number(lapWeldParam.weldMinLen));
ui->lineEdit_weldRefPoints->setText(QString::number(lapWeldParam.weldRefPoints));
// 设置扫描模式下拉框
ui->comboBox_scanMode->setCurrentIndex(static_cast<int>(lapWeldParam.scanMode));
} catch (const std::exception& e) {
QMessageBox::critical(this, "错误", "加载配置文件失败!");
}
}
bool DialogAlgoarg::SaveConfigFromUI()
{
if (!m_vrConfig) {
return false;
}
try {
// 从界面控件读取参数
VrLapWeldParam& lapWeldParam = m_configData.algorithmParams.lapWeldParam;
// 读取参数
lapWeldParam.lapHeight = ui->lineEdit_lapHeight->text().toDouble();
lapWeldParam.weldMinLen = ui->lineEdit_weldMinLen->text().toDouble();
lapWeldParam.weldRefPoints = ui->lineEdit_weldRefPoints->text().toInt();
// 读取扫描模式
lapWeldParam.scanMode = static_cast<WeldScanMode>(ui->comboBox_scanMode->currentIndex());
// 保存配置文件
bool success = m_vrConfig->SaveConfig(m_configFilePath.toStdString(), m_configData);
return success;
} catch (const std::exception& e) {
return false;
}
}
void DialogAlgoarg::on_btn_camer_ok_clicked()
{
if (SaveConfigFromUI()) {
QMessageBox::information(this, "成功", "配置保存成功!");
accept();
} else {
QMessageBox::warning(this, "失败", "配置保存失败,请检查文件权限!");
}
}
void DialogAlgoarg::on_btn_camer_cancel_clicked()
{
// 直接关闭窗口,不保存任何更改
reject();
}