diff --git a/src/PluginWBFZExchangePlugin/FEKOBaseToolClass.cpp b/src/PluginWBFZExchangePlugin/FEKOBaseToolClass.cpp index b21aa39..a054077 100644 --- a/src/PluginWBFZExchangePlugin/FEKOBaseToolClass.cpp +++ b/src/PluginWBFZExchangePlugin/FEKOBaseToolClass.cpp @@ -1497,6 +1497,13 @@ bool FEKOBase::FBPImage_FREQ(QString& restiffpath, Eigen::MatrixXcd& echoData, } #ifdef __SHOWPROCESS progressDialog.setValue(ii); + QCoreApplication::processEvents(); // 允许事件处理,以便取消按钮响应 + + // 检查是否点击了取消按钮 + if (progressDialog.wasCanceled()) { + qDebug() << "User canceled operation."; + return false; // 退出任务循环 + } #endif } @@ -1916,6 +1923,13 @@ bool FEKOBase::FBPImage_CirCleSAR(QString& restiffpath, MatrixXcd& echoData, Mat } #ifdef __SHOWPROCESS progressDialog.setValue(ii); + QCoreApplication::processEvents(); // 允许事件处理,以便取消按钮响应 + + // 检查是否点击了取消按钮 + if (progressDialog.wasCanceled()) { + qDebug() << "User canceled operation."; + return false; // 退出任务循环 + } #endif } @@ -1959,6 +1973,13 @@ bool FEKOBase::FBPImage_CirCleSAR(QString& restiffpath, MatrixXcd& echoData, Mat } #ifdef __SHOWPROCESS progressDialog.setValue(ii); + QCoreApplication::processEvents(); // 允许事件处理,以便取消按钮响应 + + // 检查是否点击了取消按钮 + if (progressDialog.wasCanceled()) { + qDebug() << "User canceled operation."; + return false; // 退出任务循环 + } #endif } @@ -2094,6 +2115,13 @@ bool FEKOBase::FBPImage_ISARNEAR(QString& restiffpath, MatrixXcd& echoData, Matr } #ifdef __SHOWPROCESS progressDialog.setValue(ii); + QCoreApplication::processEvents(); // 允许事件处理,以便取消按钮响应 + + // 检查是否点击了取消按钮 + if (progressDialog.wasCanceled()) { + qDebug() << "User canceled operation."; + return false; // 退出任务循环 + } #endif } @@ -2140,6 +2168,13 @@ bool FEKOBase::FBPImage_ISARNEAR(QString& restiffpath, MatrixXcd& echoData, Matr } #ifdef __SHOWPROCESS progressDialog.setValue(ii); + QCoreApplication::processEvents(); // 允许事件处理,以便取消按钮响应 + + // 检查是否点击了取消按钮 + if (progressDialog.wasCanceled()) { + qDebug() << "User canceled operation."; + return false; // 退出任务循环 + } #endif } diff --git a/src/PluginWBFZExchangePlugin/FEKOSimulationSARClass.cpp b/src/PluginWBFZExchangePlugin/FEKOSimulationSARClass.cpp index a444719..4b3a700 100644 --- a/src/PluginWBFZExchangePlugin/FEKOSimulationSARClass.cpp +++ b/src/PluginWBFZExchangePlugin/FEKOSimulationSARClass.cpp @@ -292,8 +292,6 @@ void FEKOBase::FEKOSimulationSARClass::saveFEKOImageSettingXML() { } QString FEKOBase::FEKOSimulationSARClass::createLuaSciptString(size_t startprfidx, size_t endprfidx,QString cfxName,FEKOBase::TRANSLATIONPOLARTYPE polartype) { - - if (this->simulationparams->startfreq > 1e6) { this->simulationparams->startfreq = this->simulationparams->startfreq / 1e9; } // ==> GHz @@ -318,6 +316,8 @@ QString FEKOBase::FEKOSimulationSARClass::createLuaSciptString(size_t startprfid luascript = luascript + QString(u8"\n"); luascript = luascript + QString(u8"app=cf.GetApplication()\n"); luascript = luascript + QString(u8"project=app.Project --- get current project\n"); + luascript = luascript + QString(u8"solutionConfigurations = project.SolutionConfigurations \n"); + luascript = luascript + QString(u8"solutionConfigurations:SetSourcesPerConfiguration()\n"); if(polartype==FEKOBase::TRANSLATIONPOLARTYPE::POLAR_VT){ luascript = luascript + QString(u8"farFieldData = project.FieldDataList:AddFarFieldData(\"%1\",%2,%3) -- farField Gains\n").arg(this->simulationparams->AntennaRadiationFileName).arg(QString::number(this->simulationparams->farsource_thetaPoints)).arg(QString::number(this->simulationparams->farsource_phiPoints)); }else if(polartype==FEKOBase::TRANSLATIONPOLARTYPE::POLAR_HT){