From 597f6243c91e98f531a790fa27af7734f440ff22 Mon Sep 17 00:00:00 2001 From: lh <2334563547@qq.com> Date: Wed, 17 Jun 2026 16:08:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=89=93=E5=BC=80?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=97=B6=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=BB=98=E8=AE=A4=E5=80=BC=E5=8F=8A=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ReadProjectData加载储层数据后调用regAttr注册属性到nmAttrRegistry - loadRsts替换nmWxParameterProperty为nmWxParaPropertyPebi - loadRsts添加listParas初始化、restoreOldParas和双向同步连接 - nmWxParaPropertyPebi设置ScrollArea背景色为白色 --- Src/nmNum/nmData/nmDataAnalyzeManager.cpp | 13 +++++++++ Src/nmNum/nmSubWnd/nmSubWndUtils.cpp | 32 +++++++++++++++------ Src/nmNum/nmSubWxs/nmWxParaPropertyPebi.cpp | 3 ++ 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/Src/nmNum/nmData/nmDataAnalyzeManager.cpp b/Src/nmNum/nmData/nmDataAnalyzeManager.cpp index 82d3fb5..883262e 100644 --- a/Src/nmNum/nmData/nmDataAnalyzeManager.cpp +++ b/Src/nmNum/nmData/nmDataAnalyzeManager.cpp @@ -3045,6 +3045,19 @@ bool nmDataAnalyzeManager::ReadProjectData(const QString & filePath) if(doc.HasMember("Reservoir") && doc["Reservoir"].IsObject()) { m_reservoirData = new nmDataReservoir; m_reservoirData->FromJsonValue(doc["Reservoir"]); + + // 注册储层属性到 nmAttrRegistry(与 createReservoir 保持一致) + if (m_pAttrRegistry) { + m_pAttrRegistry->clear(); + m_pAttrRegistry->regAttr("h", &m_reservoirData->getThickness()); + m_pAttrRegistry->regAttr("Pi", &m_reservoirData->getInitialPressure()); + m_pAttrRegistry->regAttr("K", &m_reservoirData->getPermeability()); + m_pAttrRegistry->regAttr("phi", &m_reservoirData->getPorosity()); + m_pAttrRegistry->regAttr("Cti", &m_reservoirData->getCt()); + m_pAttrRegistry->regAttr("Cf", &m_reservoirData->getCf()); + m_pAttrRegistry->regAttr("Soi", &m_reservoirData->getSoi()); + m_pAttrRegistry->regAttr("Swi", &m_reservoirData->getSwi()); + } } // 解析 "Axis" 对象 diff --git a/Src/nmNum/nmSubWnd/nmSubWndUtils.cpp b/Src/nmNum/nmSubWnd/nmSubWndUtils.cpp index ba4d85b..1e308fb 100644 --- a/Src/nmNum/nmSubWnd/nmSubWndUtils.cpp +++ b/Src/nmNum/nmSubWnd/nmSubWndUtils.cpp @@ -856,11 +856,20 @@ bool nmSubWndUtils::loadRsts(iSubWnd* pSubWnd, \ pWxDockNm1->setWindowTitle(tr("Generate numerical model")); //改变Title pWxDockNm2->setWindowTitle(tr("Parameters")); - // 自定义窗体指针 nmWxNumericalDesign* pAnalWx = new nmWxNumericalDesign(); - nmWxParameterProperty* pParaWx = new nmWxParameterProperty(); - Q_ASSERT(nullptr != pAnalWx); - Q_ASSERT(nullptr != pParaWx); + nmWxParaPropertyPebi* pParaWx = new nmWxParaPropertyPebi(); + pParaWx->initUI(); + + QStringList listParas; + listParas << "h" << "Pi" << "K" << "phi" << "Cti" << "Cf" << "Soi" << "Swi"; + pParaWx->refreshUIs(listParas); + + nmAttrRegistry* pReg = pDataManager->getAttrRegistry(); + if (pReg != nullptr) + { + QMap mapInit = pReg->collect(listParas); + pParaWx->restoreOldParas(mapInit); + } // 建立求解调用连接 connect(pAnalWx, SIGNAL(sigGenerateClicked()), @@ -868,14 +877,19 @@ bool nmSubWndUtils::loadRsts(iSubWnd* pSubWnd, \ // 切换查看井结果时刷新曲线窗口 connect(pAnalWx, SIGNAL(sigResultWellChanged(QString)), pSubWndMain, SLOT(onWellSelected(QString))); - // 建立更新参数栏连接 - connect(pAnalWx, SIGNAL(sigIncludeWells()), - pParaWx, SLOT(onUpdate())); + + // 双向同步连接 + if (pReg != nullptr) + { + connect(pParaWx, SIGNAL(sigParaChanged(QString, QVariant)), + pReg, SLOT(setValue(QString, QVariant))); + connect(pReg, SIGNAL(sigAttrChanged(QString, QVariant)), + pParaWx, SLOT(slotSetParaValue(QString, QVariant))); + } + // 井图元更新连接 // connect(pAnalWx, SIGNAL(sigUpdateWellPlot(nmDataAnalyzeManager*)), // pSubWndMain, SLOT(slotUpdateWellPlotByDataManager(nmDataAnalyzeManager*))); - //connect(pAnalWx, SIGNAL(sigIncludeWells()), - // pParaWx, SLOT(onUpdate())); pWxDockNm1->setWidget(pAnalWx); pWxDockNm2->setWidget(pParaWx); diff --git a/Src/nmNum/nmSubWxs/nmWxParaPropertyPebi.cpp b/Src/nmNum/nmSubWxs/nmWxParaPropertyPebi.cpp index 4c6bfad..72ceed0 100644 --- a/Src/nmNum/nmSubWxs/nmWxParaPropertyPebi.cpp +++ b/Src/nmNum/nmSubWxs/nmWxParaPropertyPebi.cpp @@ -47,6 +47,9 @@ void nmWxParaPropertyPebi::initUI() Q_ASSERT(nullptr != pWxBk); pWxBk->setContextMenuPolicy(Qt::CustomContextMenu); pWxBk->setAutoFillBackground(true); + QPalette palBk = pWxBk->palette(); + palBk.setColor(QPalette::Window, Qt::white); + pWxBk->setPalette(palBk); pWxBk->setLayout(m_pMainLayout); // Area, 设置Widget