fix(nmNum): LM 模式下禁用 PSO 加速选项

- 选择 LM 时置灰 PSO 加速标签和下拉框

- 切回 PSO 时恢复可用状态并保留原选择
feature/Adapt-Autofit-20260904
lvjunjie 2 days ago
parent 6dd776ebc7
commit c3297259b2

@ -40,6 +40,7 @@ public:
void onAccept(); void onAccept();
void onReject(); void onReject();
void onWellSelected(int index); void onWellSelected(int index);
void onAlgorithmChanged(int index);
void onParameterTableItemChanged(QTableWidgetItem* item); void onParameterTableItemChanged(QTableWidgetItem* item);
// 自动拟合相关槽函数 // 自动拟合相关槽函数
@ -81,6 +82,7 @@ private:
QLineEdit* m_errorLimitEdit; QLineEdit* m_errorLimitEdit;
QComboBox* m_targetWellCombo; QComboBox* m_targetWellCombo;
QComboBox* m_algorithmCombo; QComboBox* m_algorithmCombo;
QLabel* m_surrogateLabel;
QComboBox* m_surrogateCombo; QComboBox* m_surrogateCombo;
// 参数复选框 // 参数复选框

@ -817,14 +817,15 @@ void nmWxAutomaticFitting::setupControlPanel()
m_algorithmCombo->setMaximumWidth(160); m_algorithmCombo->setMaximumWidth(160);
m_algorithmCombo->setMinimumWidth(160); m_algorithmCombo->setMinimumWidth(160);
QLabel* surrogateLabel = new QLabel(tr("PSO acceleration:")); m_surrogateLabel = new QLabel(tr("PSO acceleration:"));
m_surrogateCombo = new QComboBox(); m_surrogateCombo = new QComboBox();
//m_surrogateCombo->setEnabled(false);// 暂时不可编辑
m_surrogateCombo->addItem(tr("Off")); m_surrogateCombo->addItem(tr("Off"));
m_surrogateCombo->addItem(tr("On")); m_surrogateCombo->addItem(tr("On"));
m_surrogateCombo->setCurrentIndex(automaticFittingData.getSurrogateScreeningEnabled() ? 1 : 0); m_surrogateCombo->setCurrentIndex(automaticFittingData.getSurrogateScreeningEnabled() ? 1 : 0);
m_surrogateCombo->setMaximumWidth(160); m_surrogateCombo->setMaximumWidth(160);
m_surrogateCombo->setMinimumWidth(160); m_surrogateCombo->setMinimumWidth(160);
connect(m_algorithmCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(onAlgorithmChanged(int)));
onAlgorithmChanged(m_algorithmCombo->currentIndex());
// 迭代次数 // 迭代次数
QLabel* iterationLabel = new QLabel(tr("Number of iterations:")); QLabel* iterationLabel = new QLabel(tr("Number of iterations:"));
@ -876,7 +877,7 @@ void nmWxAutomaticFitting::setupControlPanel()
m_controlLayout->addWidget(m_algorithmCombo); m_controlLayout->addWidget(m_algorithmCombo);
m_controlLayout->addSpacing(15); m_controlLayout->addSpacing(15);
m_controlLayout->addWidget(surrogateLabel); m_controlLayout->addWidget(m_surrogateLabel);
m_controlLayout->addWidget(m_surrogateCombo); m_controlLayout->addWidget(m_surrogateCombo);
m_controlLayout->addSpacing(15); m_controlLayout->addSpacing(15);
@ -895,6 +896,14 @@ void nmWxAutomaticFitting::setupControlPanel()
m_controlLayout->addStretch(1); m_controlLayout->addStretch(1);
} }
void nmWxAutomaticFitting::onAlgorithmChanged(int index)
{
// LM 不使用 PSO 加速;只切换可用状态,保留切回 PSO 时的原选择。
const bool usePSO = (index == 0);
m_surrogateLabel->setEnabled(usePSO);
m_surrogateCombo->setEnabled(usePSO);
}
void nmWxAutomaticFitting::setupButtons() void nmWxAutomaticFitting::setupButtons()
{ {
QHBoxLayout* buttonLayout = new QHBoxLayout(); QHBoxLayout* buttonLayout = new QHBoxLayout();

Loading…
Cancel
Save