From 7b991586a1c9e1681c254da202eb0aacf1729bc7 Mon Sep 17 00:00:00 2001 From: crqiqi77 Date: Fri, 10 Apr 2026 11:46:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=82=E7=BC=9D=20=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/PropertyWidget.cpp | 253 ++++++++++++++++++++++++++++++++----- logPlus/PropertyWidget.h | 8 ++ logPlus/forminfo.cpp | 40 +++++- logPlus/forminfo.h | 20 +++ logPlus/formwell.cpp | 2 +- 5 files changed, 290 insertions(+), 33 deletions(-) diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index be6e9ef..a8ce640 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -2292,7 +2292,11 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant CommonPropertyChanged(pProperty, variant); changedRoseProperty(m_propertyData[pProperty], variant); } - + else if(m_strCurrentProperty == CRACK_PROPERTY) // 裂缝 + { + CommonPropertyChanged(pProperty, variant); + changedCrackProperty(m_propertyData[pProperty], variant); + } @@ -2920,6 +2924,25 @@ void PropertyWidget::initTableProperty(FormInfo *formInfo) m_strCurrentProperty = Table_Property; } +void PropertyWidget::loadClassifyProperty(FormInfo *formInfo) +{ + _CreateVariantPropertyItem("分类", "高导缝", formInfo->m_pl_highGap, QVariant::Bool); + _CreateVariantPropertyItem("分类", "高阻缝", formInfo->m_pl_highReservoir, QVariant::Bool); + _CreateVariantPropertyItem("分类", "网状缝", formInfo->m_pl_reticularFracture, QVariant::Bool); + _CreateVariantPropertyItem("分类", "诱导缝", formInfo->m_pl_inducedFracture, QVariant::Bool); + _CreateVariantPropertyItem("分类", "层理", formInfo->m_pl_bedLayer, QVariant::Bool); + _CreateVariantPropertyItem("分类", "侵蚀面", formInfo->m_pl_erosionSurface, QVariant::Bool); + _CreateVariantPropertyItem("分类", "孔洞", formInfo->m_pl_pore, QVariant::Bool); + _CreateVariantPropertyItem("分类", "气孔", formInfo->m_pl_vesicle, QVariant::Bool); + _CreateVariantPropertyItem("分类", "砾石", formInfo->m_pl_gravel, QVariant::Bool); + _CreateVariantPropertyItem("分类", "结核", formInfo->m_pl_nodule, QVariant::Bool); + _CreateVariantPropertyItem("分类", "团块", formInfo->m_pl_lumps, QVariant::Bool); + _CreateVariantPropertyItem("分类", "断层", formInfo->m_pl_fault, QVariant::Bool); + _CreateVariantPropertyItem("分类", "垂直缝", formInfo->m_pl_verticalFracture, QVariant::Bool); + _CreateVariantPropertyItem("分类", "自定义1", formInfo->m_pl_custom1, QVariant::Bool); + _CreateVariantPropertyItem("分类", "自定义2", formInfo->m_pl_custom2, QVariant::Bool); +} + void PropertyWidget::initDepthProperty(FormInfo *formInfo) { _CreateVariantPropertyItem("通常", "显示名称", formInfo->m_strAliasName, QVariant::String); @@ -3055,6 +3078,12 @@ void PropertyWidget::initProperty(FormInfo *formInfo) //频率统计图 this->initPlObjectProperty(formInfo); } + else if (formInfo->m_strType == "CrackObject") + { + // 裂缝 + this->initCrackProperty(formInfo); + } + } void PropertyWidget::initWaveProperty(FormInfo *formInfo, int nType) @@ -4168,6 +4197,194 @@ void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal) } } +void PropertyWidget::initCrackProperty(FormInfo *formInfo) +{ + _CreateVariantPropertyItem("数据", "井文件", formInfo->m_strSlfName, QVariant::String); + _CreateVariantPropertyItem("数据", "显示名称", formInfo->m_strAliasName, QVariant::String); + _CreateVariantPropertyItem("数据", "井眼直径", formInfo->m_crack_boreholeDiameter, QVariant::Double); + QStringList listType; + listType.append("否"); + listType.append("是"); + _CreateEnumPropertyItem("数据", "绘制裂缝名称", formInfo->m_crack_drawName, listType); + _CreateEnumPropertyItem("数据", "绘制裂缝角度", formInfo->m_crack_drawAngle, listType); + _CreateVariantPropertyItem("数据", "井斜角曲线名", formInfo->m_crack_inclinationCurveName, QVariant::String); + _CreateVariantPropertyItem("数据", "方位角曲线名", formInfo->m_crack_azimuthCurveName, QVariant::String); + + _CreateVariantPropertyItem("通常", "例区高度(cm)", formInfo->m_headHeight, QVariant::Int); + + _CreateVariantPropertyItem("字体", "名称", formInfo->m_strAliasNameFont, QVariant::Font); + _CreateVariantPropertyItem("字体", "刻度", formInfo->m_crack_fontScaleSize, QVariant::Font); + _CreateVariantPropertyItem("字体", "标注", formInfo->m_crack_fontAnnotationSize, QVariant::Font); + + _CreateVariantPropertyItem("显示控制", "小数位数", formInfo->m_crack_decimal_digits, QVariant::Int); + + // 分类 + this->loadClassifyProperty(formInfo); + + m_strCurrentProperty = CRACK_PROPERTY; +} + +void PropertyWidget::changedCrackProperty(QString strProperty, QVariant varVal) +{ + bool flag = false; + // 数据 + if ("井文件" == strProperty) + { + this->m_formInfo->m_strSlfName = varVal.toString(); + } + else if ("井眼直径" == strProperty) + { + this->m_formInfo->m_crack_boreholeDiameter = varVal.toDouble(); + } + else if ("绘制裂缝名称" == strProperty) + { + this->m_formInfo->m_crack_drawName = varVal.toInt(); + flag = true; + } + else if ("绘制裂缝角度" == strProperty) + { + this->m_formInfo->m_crack_drawAngle = varVal.toInt(); + flag = true; + } + else if ("井斜角曲线名" == strProperty) + { + this->m_formInfo->m_crack_inclinationCurveName = varVal.toString(); + } + else if ("方位角曲线名" == strProperty) + { + this->m_formInfo->m_crack_azimuthCurveName = varVal.toString(); + } + // 通常 + else if ("例区高度(cm)" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_headHeight = temp; + this->m_formInfo->setFixedHeight(temp); + this->m_formInfo->repaint(); + } + // 字体 + else if ("名称" == strProperty) + { + this->m_formInfo->m_strAliasNameFont = varVal.value(); + this->m_formInfo->repaint(); + } + else if ("刻度" == strProperty) + { + this->m_formInfo->m_crack_fontScaleSize = varVal.value(); + this->m_formInfo->repaint(); + } + else if ("标注" == strProperty) + { + this->m_formInfo->m_crack_fontAnnotationSize = varVal.value(); + this->m_formInfo->repaint(); + } + // 显示控制 + else if ("小数位数" == strProperty) + { + this->m_formInfo->m_crack_decimal_digits = varVal.toInt(); + } + // 分类 + else if ("高导缝" == strProperty) + { + this->m_formInfo->m_pl_highGap = varVal.toBool(); + } + else if ("高阻缝" == strProperty) + { + this->m_formInfo->m_pl_highReservoir = varVal.toBool(); + } + else if ("网状缝" == strProperty) + { + this->m_formInfo->m_pl_reticularFracture = varVal.toBool(); + } + else if ("诱导缝" == strProperty) + { + this->m_formInfo->m_pl_inducedFracture = varVal.toBool(); + } + else if ("层理" == strProperty) + { + this->m_formInfo->m_pl_bedLayer = varVal.toBool(); + } + else if ("侵蚀面" == strProperty) + { + this->m_formInfo->m_pl_erosionSurface = varVal.toBool(); + } + else if ("孔洞" == strProperty) + { + this->m_formInfo->m_pl_pore = varVal.toBool(); + } + else if ("气孔" == strProperty) + { + this->m_formInfo->m_pl_vesicle = varVal.toBool(); + } + else if ("砾石" == strProperty) + { + this->m_formInfo->m_pl_gravel = varVal.toBool(); + } + else if ("结核" == strProperty) + { + this->m_formInfo->m_pl_nodule = varVal.toBool(); + } + else if ("团块" == strProperty) + { + this->m_formInfo->m_pl_lumps = varVal.toBool(); + } + else if ("断层" == strProperty) + { + this->m_formInfo->m_pl_fault = varVal.toBool(); + } + else if ("垂直缝" == strProperty) + { + this->m_formInfo->m_pl_verticalFracture = varVal.toBool(); + } + else if ("自定义1" == strProperty) + { + this->m_formInfo->m_pl_custom1 = varVal.toBool(); + } + else if ("自定义2" == strProperty) + { + this->m_formInfo->m_pl_custom2 = varVal.toBool(); + } + + if(flag) + { + QVariantMap variantMap; + // 必须用来判断当前道 + variantMap["m_strTrackName"] = this->m_formInfo->m_strTrackName; + // 数据 + variantMap["m_pl_dataType"] = this->m_formInfo->m_pl_dataType; + variantMap["m_pl_azimuthCurve"] = this->m_formInfo->m_pl_azimuthCurve; + variantMap["m_pl_inclinationCurve"] = this->m_formInfo->m_pl_inclinationCurve; + // 控制曲线 + variantMap["m_pl_controlCurveName"] = this->m_formInfo->m_pl_controlCurveName; + variantMap["m_pl_controlMinValue"] = this->m_formInfo->m_pl_controlMinValue; + variantMap["m_pl_controlMaxValue"] = this->m_formInfo->m_pl_controlMaxValue; + + variantMap["m_pl_sectorCount"] = this->m_formInfo->m_pl_sectorCount; + variantMap["m_pl_circleRadius"] = this->m_formInfo->m_pl_circleRadius; + variantMap["m_pl_circleColor"] = this->m_formInfo->m_pl_circleColor; + variantMap["m_pl_circleLineWidth"] = this->m_formInfo->m_pl_circleLineWidth; + variantMap["m_pl_isFillEnabled"] = this->m_formInfo->m_pl_isFillEnabled; + variantMap["m_pl_fillColor"] = this->m_formInfo->m_pl_fillColor; + // 线数 + variantMap["m_pl_lineNumber"] = this->m_formInfo->m_pl_lineNumber; + variantMap["m_pl_lineHeight"] = this->m_formInfo->m_pl_lineHeight; + variantMap["m_pl_lineThickness"] = this->m_formInfo->m_pl_lineThickness; + variantMap["m_pl_lineColor"] = this->m_formInfo->m_pl_lineColor; + variantMap["m_pl_drawAnnotation"] = this->m_formInfo->m_pl_drawAnnotation; + variantMap["m_pl_drawHistogram"] = this->m_formInfo->m_pl_drawHistogram; + variantMap["m_pl_baselineWidth"] = this->m_formInfo->m_pl_baselineWidth; + variantMap["m_pl_baselineColor"] = this->m_formInfo->m_pl_baselineColor; + // 统计间隔 + variantMap["m_pl_statInterval"] = this->m_formInfo->m_pl_statInterval; + variantMap["m_pl_minInclination"] = this->m_formInfo->m_pl_minInclination; + variantMap["m_pl_maxInclination"] = this->m_formInfo->m_pl_maxInclination; + + variantMap["m_strUuid"] = this->m_formInfo->m_strUuid; + variantMap["m_strTrackName"] = this->m_formInfo->m_strTrackName; +// emit CallManage::getInstance()->sig_changePlObjectProperty(variantMap); + } +} + void PropertyWidget::initPlObjectProperty(FormInfo *formInfo) { @@ -4213,21 +4430,8 @@ void PropertyWidget::initPlObjectProperty(FormInfo *formInfo) _CreateVariantPropertyItem("统计参数", "最小倾角", formInfo->m_pl_minInclination, QVariant::Double); _CreateVariantPropertyItem("统计参数", "最大倾角", formInfo->m_pl_maxInclination, QVariant::Double); - _CreateVariantPropertyItem("分类", "高导缝", formInfo->m_pl_highGap, QVariant::Bool); - _CreateVariantPropertyItem("分类", "高阻缝", formInfo->m_pl_highReservoir, QVariant::Bool); - _CreateVariantPropertyItem("分类", "网状缝", formInfo->m_pl_reticularFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "诱导缝", formInfo->m_pl_inducedFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "层理", formInfo->m_pl_bedLayer, QVariant::Bool); - _CreateVariantPropertyItem("分类", "侵蚀面", formInfo->m_pl_erosionSurface, QVariant::Bool); - _CreateVariantPropertyItem("分类", "孔洞", formInfo->m_pl_pore, QVariant::Bool); - _CreateVariantPropertyItem("分类", "气孔", formInfo->m_pl_vesicle, QVariant::Bool); - _CreateVariantPropertyItem("分类", "砾石", formInfo->m_pl_gravel, QVariant::Bool); - _CreateVariantPropertyItem("分类", "结核", formInfo->m_pl_nodule, QVariant::Bool); - _CreateVariantPropertyItem("分类", "团块", formInfo->m_pl_lumps, QVariant::Bool); - _CreateVariantPropertyItem("分类", "断层", formInfo->m_pl_fault, QVariant::Bool); - _CreateVariantPropertyItem("分类", "垂直缝", formInfo->m_pl_verticalFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "自定义1", formInfo->m_pl_custom1, QVariant::Bool); - _CreateVariantPropertyItem("分类", "自定义2", formInfo->m_pl_custom2, QVariant::Bool); + // 分类 + this->loadClassifyProperty(formInfo); m_strCurrentProperty = PL_OBJECT_PROPERTY; } @@ -4530,21 +4734,8 @@ void PropertyWidget::initRoseProperty(FormInfo *formInfo) _CreateVariantPropertyItem("统计参数", "最小倾角", formInfo->m_pl_minInclination, QVariant::Double); _CreateVariantPropertyItem("统计参数", "最大倾角", formInfo->m_pl_maxInclination, QVariant::Double); - _CreateVariantPropertyItem("分类", "高导缝", formInfo->m_pl_highGap, QVariant::Bool); - _CreateVariantPropertyItem("分类", "高阻缝", formInfo->m_pl_highReservoir, QVariant::Bool); - _CreateVariantPropertyItem("分类", "网状缝", formInfo->m_pl_reticularFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "诱导缝", formInfo->m_pl_inducedFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "层理", formInfo->m_pl_bedLayer, QVariant::Bool); - _CreateVariantPropertyItem("分类", "侵蚀面", formInfo->m_pl_erosionSurface, QVariant::Bool); - _CreateVariantPropertyItem("分类", "孔洞", formInfo->m_pl_pore, QVariant::Bool); - _CreateVariantPropertyItem("分类", "气孔", formInfo->m_pl_vesicle, QVariant::Bool); - _CreateVariantPropertyItem("分类", "砾石", formInfo->m_pl_gravel, QVariant::Bool); - _CreateVariantPropertyItem("分类", "结核", formInfo->m_pl_nodule, QVariant::Bool); - _CreateVariantPropertyItem("分类", "团块", formInfo->m_pl_lumps, QVariant::Bool); - _CreateVariantPropertyItem("分类", "断层", formInfo->m_pl_fault, QVariant::Bool); - _CreateVariantPropertyItem("分类", "垂直缝", formInfo->m_pl_verticalFracture, QVariant::Bool); - _CreateVariantPropertyItem("分类", "自定义1", formInfo->m_pl_custom1, QVariant::Bool); - _CreateVariantPropertyItem("分类", "自定义2", formInfo->m_pl_custom2, QVariant::Bool); + // 分类 + this->loadClassifyProperty(formInfo); m_strCurrentProperty = ROSE_OBJECT_PROPERTY; } diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index f87a468..17e3439 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -50,6 +50,7 @@ #define CORE_PHYSICS_ITEM_PROPERTY "CORE_PHYSICS_ITEM_PROPERTY" // 岩心分析item #define Image_Property "Image_Property" // 岩心图片 #define ImageItem_Property "ImageItem_Property" // 岩心图片item +#define CRACK_PROPERTY "CRACK_PROPERTY" // 裂缝 #define PL_OBJECT_PROPERTY "PL_OBJECT_PROPERTY" // 频率统计图 #define ROSE_OBJECT_PROPERTY "ROSE_OBJECT_PROPERTY" // 玫瑰图 @@ -223,6 +224,9 @@ public: //处理通用属性 void CommonPropertyChanged(QtProperty *pProperty, const QVariant &variant); + // 分类 + void loadClassifyProperty(FormInfo *formInfo); + // 深度 void initDepthProperty(FormInfo *formInfo); void changedDepthProperty(QString strProName, QVariant val); @@ -238,6 +242,10 @@ public: void changedYxzpProperty(QtProperty *pProperty, const QVariant &variant); void changedYxzpItemProperty(QtProperty *pProperty, const QVariant &variant); + // 裂缝 + void initCrackProperty(FormInfo *formInfo); + void changedCrackProperty(QString strProName, QVariant val); + // 频率统计图 void initPlObjectProperty(FormInfo *formInfo); void changedPlObjectProperty(QString strProName, QVariant val); diff --git a/logPlus/forminfo.cpp b/logPlus/forminfo.cpp index 8072acf..860bbdf 100644 --- a/logPlus/forminfo.cpp +++ b/logPlus/forminfo.cpp @@ -516,6 +516,45 @@ QJsonObject FormInfo::makeJson() rootObj["m_rose_fill_enabled"] = this->m_rose_fill_enabled; // 是否填充 rootObj["m_rose_draw_annotation"] = this->m_rose_draw_annotation; // 是否绘制标注? } + else if (m_strType == "CrackObject") + { + // 数据 + // 井文件 m_strSlfName + // 显示名称 m_strAliasName + rootObj["m_crack_boreholeDiameter"] = this->m_crack_boreholeDiameter; // 井眼直径 + rootObj["m_crack_drawName"] = this->m_crack_drawName; // 绘制裂缝名称 + rootObj["m_crack_drawAngle"] = this->m_crack_drawAngle; // 绘制裂缝角度 + rootObj["m_crack_inclinationCurveName"] = this->m_crack_inclinationCurveName; // 井斜角曲线名 + rootObj["m_crack_azimuthCurveName"] = this->m_crack_azimuthCurveName; // 方位角曲线名 + // 通常 + // 例区高度 m_headHeight + // 字体 + // 名称 m_strAliasNameFont + rootObj["m_crack_fontScaleSize"] = this->m_crack_fontScaleSize.toString(); // 刻度 + rootObj["m_crack_fontAnnotationSize"] = this->m_crack_fontAnnotationSize.toString(); // 标注 + // 显示控制 + rootObj["m_crack_decimal_digits"] = this->m_crack_decimal_digits; // 小数位数 + +// _CreateVariantPropertyItem("数据", "井文件", formInfo->m_strSlfName, QVariant::String); +// _CreateVariantPropertyItem("数据", "显示名称", formInfo->m_strAliasName, QVariant::String); +// _CreateVariantPropertyItem("数据", "井眼直径", formInfo->m_crack_boreholeDiameter, QVariant::Double); +// QStringList listType; +// listType.append("否"); +// listType.append("是"); +// _CreateEnumPropertyItem("数据", "绘制裂缝名称", formInfo->m_crack_drawName, listType); +// _CreateEnumPropertyItem("数据", "绘制裂缝角度", formInfo->m_crack_drawAngle, listType); +// _CreateVariantPropertyItem("数据", "井斜角曲线名", formInfo->m_crack_inclinationCurveName, QVariant::String); +// _CreateVariantPropertyItem("数据", "方位角曲线名", formInfo->m_crack_azimuthCurveName, QVariant::String); + +// _CreateVariantPropertyItem("通常", "例区高度(cm)", formInfo->m_headHeight, QVariant::Int); + +// _CreateVariantPropertyItem("字体", "名称", formInfo->m_strAliasNameFont, QVariant::Font); +// _CreateVariantPropertyItem("字体", "刻度", formInfo->m_crack_fontScaleSize, QVariant::Font); +// _CreateVariantPropertyItem("字体", "标注", formInfo->m_crack_fontAnnotationSize, QVariant::Font); + +// _CreateVariantPropertyItem("显示控制", "小数位数", formInfo->m_crack_decimal_digits, QVariant::Int); + + } if (m_strType == "plObject" || m_strType == "roseObject") { @@ -557,7 +596,6 @@ QJsonObject FormInfo::makeJson() rootObj["m_pl_verticalFracture"] = this->m_pl_verticalFracture; // 垂直缝 rootObj["m_pl_custom1"] = this->m_pl_custom1; // 自定义1 rootObj["m_pl_custom2"] = this->m_pl_custom2; // 自定义2 - } return rootObj; } diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index b1524de..b058f83 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -277,6 +277,26 @@ public: bool m_pl_custom1 = false; // 自定义1 bool m_pl_custom2 = false; // 自定义2 + // 裂缝 + // 数据 + // 井文件 m_strSlfName + // 显示名称 m_strAliasName + double m_crack_boreholeDiameter = 0.216; // 井眼直径 + int m_crack_drawName = 0; // 绘制裂缝名称 + int m_crack_drawAngle = 0; // 绘制裂缝角度 + QString m_crack_inclinationCurveName = "DEVI"; // 井斜角曲线名 + QString m_crack_azimuthCurveName = "HAZI"; // 方位角曲线名 + // 通常 + // 例区高度 m_headHeight + // 字体 + // 名称 m_strAliasNameFont + QFont m_crack_fontScaleSize = QFont("黑体", 8); // 刻度 + QFont m_crack_fontAnnotationSize = QFont("黑体", 8); // 标注 + // 显示控制 + int m_crack_decimal_digits = 2; // 小数位数 + + + // 频率统计图 // 方位频率绘图参数 int m_pl_sectorCount = 36; // 扇形数量 diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index c094be7..39cccc1 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -134,7 +134,7 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) if(strType == "depthObject") strTrackName = "深度"; else if(strType == "roseObject") - strTrackName = "玫瑰图"; + strTrackName = "玫瑰图" + QString::number(columnCount+1); else if(strType == "dcaObject") strTrackName = "DCA检测"; else if(strType == "tdtObject")