From bda03c45eb5d62370c96fb85526e90ddb76427ad Mon Sep 17 00:00:00 2001 From: crqiqi77 Date: Tue, 7 Apr 2026 16:10:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=A9=E5=BF=83=E5=88=86=E6=9E=90=20BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logPlus/PropertyWidget.cpp | 595 ++++++++++++++------ logPlus/PropertyWidget.h | 1 + logPlus/TransparentDraggableCorePhysics.cpp | 24 +- logPlus/forminfo.h | 73 ++- 4 files changed, 476 insertions(+), 217 deletions(-) diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index 287d98e..de11587 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -3050,70 +3050,6 @@ void PropertyWidget::initProperty(FormInfo *formInfo) //频率统计图 this->initPlObjectProperty(formInfo); } - -} - -void PropertyWidget::initRoseProperty(FormInfo *formInfo) -{ - _CreateVariantPropertyItem("数据", "名称", formInfo->m_strAliasName, QVariant::String); - QStringList listType; - listType.append("曲线型数据"); - listType.append("表格型数据"); - _CreateEnumPropertyItem("数据", "数据类型", listType.indexOf("曲线型数据"), listType); - _CreateVariantPropertyItem("数据", "显示单位", "°", QVariant::String); - _CreateVariantPropertyItem("数据", "井文件名称", m_strSlfName, QVariant::String); - _CreateVariantPropertyItem("数据", "方位曲线", "STRDIR", QVariant::String); - _CreateVariantPropertyItem("数据", "倾角曲线", "CALM", QVariant::String); - - _CreateVariantPropertyItem("通常", "例区高度(cm)", 36, QVariant::Int); - - _CreateVariantPropertyItem("表数据", "深度字段", m_strSlfName, QVariant::String); - _CreateVariantPropertyItem("表数据", "方位字段", m_strSlfName, QVariant::String); - _CreateVariantPropertyItem("表数据", "倾角字段", m_strSlfName, QVariant::String); - _CreateVariantPropertyItem("表数据", "属性字段", m_strSlfName, QVariant::String); - - _CreateVariantPropertyItem("控制曲线", "曲线名", m_strSlfName, QVariant::String); - _CreateVariantPropertyItem("控制曲线", "最大值", m_strSlfName, QVariant::Double); - _CreateVariantPropertyItem("控制曲线", "最小值", m_strSlfName, QVariant::Double); - - _CreateVariantPropertyItem("字体", "名称", 36, QVariant::Font); - _CreateVariantPropertyItem("字体", "单位", 36, QVariant::Font); - _CreateVariantPropertyItem("字体", "刻度", 36, QVariant::Font); - - _CreateVariantPropertyItem("玫瑰图", "扇形", 36, QVariant::Int); - _CreateVariantPropertyItem("玫瑰图", "圆半径(cm)", 1, QVariant::Int); - _CreateVariantPropertyItem("玫瑰图", "辐射圈", 9, QVariant::Int); - _CreateVariantPropertyItem("玫瑰图", "方位打印间隔", 3, QVariant::Int); - _CreateVariantPropertyItem("玫瑰图", "圆线颜色", QColor(0,0,0), QVariant::Color); - _CreateVariantPropertyItem("玫瑰图", "圆线宽度", 2, QVariant::Int); - _CreateVariantPropertyItem("玫瑰图", "应力线颜色", QColor(255, 170, 0), QVariant::Color); - _CreateVariantPropertyItem("玫瑰图", "垮塌线颜色", QColor(0, 0, 255), QVariant::Color); - _CreateVariantPropertyItem("玫瑰图", "绘制辐射线?", true, QVariant::Bool); - _CreateVariantPropertyItem("玫瑰图", "绘制井眼垮塌", true, QVariant::Bool); - _CreateVariantPropertyItem("玫瑰图", "是否填充", true, QVariant::Bool); - _CreateVariantPropertyItem("玫瑰图", "是否绘制标注?", true, QVariant::Bool); - - _CreateVariantPropertyItem("统计参数", "统计间隔", 36, QVariant::Int); - _CreateVariantPropertyItem("统计参数", "最小倾角", 36, QVariant::Int); - _CreateVariantPropertyItem("统计参数", "最大倾角", 36, QVariant::Int); - - _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); - - m_strCurrentProperty = PL_OBJECT_PROPERTY; } void PropertyWidget::initWaveProperty(FormInfo *formInfo, int nType) @@ -4085,6 +4021,149 @@ void PropertyWidget::initTubingItemProperty(TransparentDraggableGuan* tdGuan, do } } + + +void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal) +{ + if ("显示单位" == strProperty) + { + this->m_formInfo->m_strUnit = varVal.toString(); + this->m_formInfo->repaint(); + } + else if ("主刻度线长度" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_sdMajorTickLineLength = temp; + } + else if ("主刻度线宽度" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_sdMajorTickLineWidth = temp; + } + else if ("次刻度线长度" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_sdMinorTickLineLength = temp; + } + else if ("次刻度线宽度" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_sdMinorTickLineWidth = temp; + } + else if ("标尺颜色" == strProperty) + { + QColor newColor = varVal.value(); + this->m_formInfo->m_sdRulerColor = newColor; + } + else if ("间隔" == strProperty) + { + double temp = varVal.toDouble(); + // 应用到Y轴 + this->m_formInfo->m_sdInterval = temp; + } + else if ("标注字体" == strProperty) + { + QFont newFont = varVal.value(); + this->m_formInfo->m_sdLabelFont = newFont; + } + else if ("旋转(°)" == strProperty) + { + double temp = varVal.toDouble(); + this->m_formInfo->m_sdRotationAngle = temp; + } + else if ("斜深" == strProperty) + { + bool temp = varVal.toBool(); + this->m_formInfo->m_sdMeasuredDepth = temp; + } + else if ("单位" == strProperty) + { + QFont temp = varVal.value(); + this->m_formInfo->m_strUnitFont = temp; + this->m_formInfo->repaint(); + } + else if ("头部高度" == strProperty) + { + int temp = varVal.toInt(); + this->m_formInfo->m_headHeight = temp; + this->m_formInfo->setFixedHeight(temp); + } + else if ("斜深位置" == strProperty) + { + int temp = varVal.toInt(); + int newStyle = 0; + switch(temp) + { + case 0: + // 偏左 + newStyle = Qt::NoPen; + break; + case 1: + // 居中 + newStyle = Qt::SolidLine; + break; + case 2: + // 偏右 + newStyle = Qt::DashLine; + break; + } + this->m_formInfo->m_sdMeasuredDepthPosition = newStyle; + } + else if ("垂深位置" == strProperty) + { + int temp = varVal.toInt(); + int newStyle = 0; + switch(temp) + { + case 0: + // 偏左 + newStyle = Qt::NoPen; + break; + case 1: + // 居中 + newStyle = Qt::SolidLine; + break; + case 2: + // 偏右 + newStyle = Qt::DashLine; + break; + } + this->m_formInfo->m_sdVerticalDepthPosition = newStyle; + } + else if ("海拔垂深位置" == strProperty) + { + int temp = varVal.toInt(); + int newStyle = 0; + switch(temp) + { + case 0: + // 偏左 + newStyle = Qt::NoPen; + break; + case 1: + // 居中 + newStyle = Qt::SolidLine; + break; + case 2: + // 偏右 + newStyle = Qt::DashLine; + break; + } + this->m_formInfo->m_sdElevationVerticalDepthPosition = newStyle; + } + else if ("垂深" == strProperty) + { + bool temp = varVal.toBool(); + this->m_formInfo->m_sdVerticalDepth = temp; + } + else if ("海拔垂深" == strProperty) + { + bool temp = varVal.toBool(); + this->m_formInfo->m_sdElevationVerticalDepth = temp; + } +} + + void PropertyWidget::initPlObjectProperty(FormInfo *formInfo) { _CreateVariantPropertyItem("数据", "数据名称", formInfo->m_strAliasName, QVariant::String); @@ -4173,7 +4252,7 @@ void PropertyWidget::changedPlObjectProperty(QString strProperty, QVariant varVa { this->m_formInfo->m_pl_inclinationCurve = varVal.toString(); } - else if ("例区高度" == strProperty) + else if ("例区高度(cm)" == strProperty) { int temp = varVal.toInt(); this->m_formInfo->m_headHeight = temp; @@ -4391,58 +4470,106 @@ void PropertyWidget::changedPlObjectProperty(QString strProperty, QVariant varVa } } -void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal) +void PropertyWidget::initRoseProperty(FormInfo *formInfo) { - if ("显示单位" == strProperty) + _CreateVariantPropertyItem("数据", "数据名称", formInfo->m_strAliasName, QVariant::String); + QStringList listType; + listType.append("曲线型数据"); + listType.append("表格型数据"); + _CreateEnumPropertyItem("数据", "数据类型", formInfo->m_pl_dataType, listType); + _CreateVariantPropertyItem("数据", "显示单位", formInfo->m_strUnit, QVariant::String); + _CreateVariantPropertyItem("数据", "井文件名称", formInfo->m_strSlfName, QVariant::String); + _CreateVariantPropertyItem("数据", "方位曲线", formInfo->m_pl_azimuthCurve, QVariant::String); + _CreateVariantPropertyItem("数据", "倾角曲线", formInfo->m_pl_inclinationCurve, QVariant::String); + + _CreateVariantPropertyItem("通常", "例区高度(cm)", formInfo->m_headHeight, QVariant::Int); + + _CreateVariantPropertyItem("表数据", "深度字段", m_strSlfName, QVariant::String); + _CreateVariantPropertyItem("表数据", "方位字段", m_strSlfName, QVariant::String); + _CreateVariantPropertyItem("表数据", "倾角字段", m_strSlfName, QVariant::String); + _CreateVariantPropertyItem("表数据", "属性字段", m_strSlfName, QVariant::String); + + _CreateVariantPropertyItem("控制曲线", "曲线名", formInfo->m_pl_controlCurveName, QVariant::String); + _CreateVariantPropertyItem("控制曲线", "最小值", formInfo->m_pl_controlMinValue, QVariant::Int); + _CreateVariantPropertyItem("控制曲线", "最大值", formInfo->m_pl_controlMaxValue, QVariant::Int); + + _CreateVariantPropertyItem("字体", "名称", formInfo->m_strAliasNameFont, QVariant::Font); + _CreateVariantPropertyItem("字体", "单位", formInfo->m_strUnitFont, QVariant::Font); + _CreateVariantPropertyItem("字体", "刻度", formInfo->m_pl_fontScale, QVariant::Font); + + _CreateVariantPropertyItem("玫瑰图", "扇形", 36, QVariant::Int); + _CreateVariantPropertyItem("玫瑰图", "圆半径(cm)", 1, QVariant::Int); + _CreateVariantPropertyItem("玫瑰图", "辐射圈", 9, QVariant::Int); + _CreateVariantPropertyItem("玫瑰图", "方位打印间隔", 3, QVariant::Int); + _CreateVariantPropertyItem("玫瑰图", "圆线颜色", QColor(0,0,0), QVariant::Color); + _CreateVariantPropertyItem("玫瑰图", "圆线宽度", 2, QVariant::Int); + _CreateVariantPropertyItem("玫瑰图", "应力线颜色", QColor(255, 170, 0), QVariant::Color); + _CreateVariantPropertyItem("玫瑰图", "垮塌线颜色", QColor(0, 0, 255), QVariant::Color); + _CreateVariantPropertyItem("玫瑰图", "绘制辐射线?", true, QVariant::Bool); + _CreateVariantPropertyItem("玫瑰图", "绘制井眼垮塌", true, QVariant::Bool); + _CreateVariantPropertyItem("玫瑰图", "是否填充", true, QVariant::Bool); + _CreateVariantPropertyItem("玫瑰图", "是否绘制标注?", true, QVariant::Bool); + + _CreateVariantPropertyItem("统计参数", "统计间隔", formInfo->m_pl_statInterval, QVariant::Int); + _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); + + m_strCurrentProperty = ROSE_OBJECT_PROPERTY; +} + +void PropertyWidget::changedRoseProperty(QString strProperty, QVariant varVal) +{ + bool flag = false; + if ("数据名称" == strProperty) + { + m_formInfo->m_strAliasName = varVal.toString(); + this->m_formInfo->repaint(); + } + else if ("数据类型" == strProperty) + { + this->m_formInfo->m_pl_dataType = varVal.toInt(); + } + else if ("显示单位" == strProperty) { this->m_formInfo->m_strUnit = varVal.toString(); this->m_formInfo->repaint(); } - else if ("主刻度线长度" == strProperty) + else if ("方位曲线" == strProperty) + { + this->m_formInfo->m_pl_azimuthCurve = varVal.toString(); + } + else if ("倾角曲线" == strProperty) + { + this->m_formInfo->m_pl_inclinationCurve = varVal.toString(); + } + else if ("例区高度(cm)" == strProperty) { int temp = varVal.toInt(); - this->m_formInfo->m_sdMajorTickLineLength = temp; + this->m_formInfo->m_headHeight = temp; + this->m_formInfo->setFixedHeight(temp); + this->m_formInfo->repaint(); } - else if ("主刻度线宽度" == strProperty) + else if ("名称" == strProperty || "曲线名称" == strProperty) { - int temp = varVal.toInt(); - this->m_formInfo->m_sdMajorTickLineWidth = temp; - } - else if ("次刻度线长度" == strProperty) - { - int temp = varVal.toInt(); - this->m_formInfo->m_sdMinorTickLineLength = temp; - } - else if ("次刻度线宽度" == strProperty) - { - int temp = varVal.toInt(); - this->m_formInfo->m_sdMinorTickLineWidth = temp; - } - else if ("标尺颜色" == strProperty) - { - QColor newColor = varVal.value(); - this->m_formInfo->m_sdRulerColor = newColor; - } - else if ("间隔" == strProperty) - { - double temp = varVal.toDouble(); - // 应用到Y轴 - this->m_formInfo->m_sdInterval = temp; - } - else if ("标注字体" == strProperty) - { - QFont newFont = varVal.value(); - this->m_formInfo->m_sdLabelFont = newFont; - } - else if ("旋转(°)" == strProperty) - { - double temp = varVal.toDouble(); - this->m_formInfo->m_sdRotationAngle = temp; - } - else if ("斜深" == strProperty) - { - bool temp = varVal.toBool(); - this->m_formInfo->m_sdMeasuredDepth = temp; + QFont newFont = varVal.value(); + this->m_formInfo->m_strAliasNameFont = newFont; + this->m_formInfo->repaint(); } else if ("单位" == strProperty) { @@ -4450,83 +4577,201 @@ void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal) this->m_formInfo->m_strUnitFont = temp; this->m_formInfo->repaint(); } - else if ("头部高度" == strProperty) + else if ("刻度" == strProperty) { - int temp = varVal.toInt(); - this->m_formInfo->m_headHeight = temp; - this->m_formInfo->setFixedHeight(temp); + QFont temp = varVal.value(); + this->m_formInfo->m_pl_fontScale = temp; + this->m_formInfo->repaint(); } - else if ("斜深位置" == strProperty) + else if ("曲线名" == strProperty) { - int temp = varVal.toInt(); - int newStyle = 0; - switch(temp) - { - case 0: - // 偏左 - newStyle = Qt::NoPen; - break; - case 1: - // 居中 - newStyle = Qt::SolidLine; - break; - case 2: - // 偏右 - newStyle = Qt::DashLine; - break; - } - this->m_formInfo->m_sdMeasuredDepthPosition = newStyle; + this->m_formInfo->m_pl_controlCurveName = varVal.toString(); + flag = true; } - else if ("垂深位置" == strProperty) + else if ("最小值" == strProperty) { - int temp = varVal.toInt(); - int newStyle = 0; - switch(temp) - { - case 0: - // 偏左 - newStyle = Qt::NoPen; - break; - case 1: - // 居中 - newStyle = Qt::SolidLine; - break; - case 2: - // 偏右 - newStyle = Qt::DashLine; - break; - } - this->m_formInfo->m_sdVerticalDepthPosition = newStyle; + this->m_formInfo->m_pl_controlMinValue = varVal.toDouble(); + flag = true; } - else if ("海拔垂深位置" == strProperty) + else if ("最大值" == strProperty) { - int temp = varVal.toInt(); - int newStyle = 0; - switch(temp) - { - case 0: - // 偏左 - newStyle = Qt::NoPen; - break; - case 1: - // 居中 - newStyle = Qt::SolidLine; - break; - case 2: - // 偏右 - newStyle = Qt::DashLine; - break; - } - this->m_formInfo->m_sdElevationVerticalDepthPosition = newStyle; + this->m_formInfo->m_pl_controlMaxValue = varVal.toDouble(); + flag = true; } - else if ("垂深" == strProperty) + else if ("扇形" == strProperty) { - bool temp = varVal.toBool(); - this->m_formInfo->m_sdVerticalDepth = temp; + this->m_formInfo->m_pl_sectorCount = varVal.toInt(); + flag = true; } - else if ("海拔垂深" == strProperty) + else if ("圆半径(cm)" == strProperty) { - bool temp = varVal.toBool(); - this->m_formInfo->m_sdElevationVerticalDepth = temp; + this->m_formInfo->m_pl_circleRadius = varVal.toInt(); + flag = true; + } + else if ("圆线颜色" == strProperty) + { + this->m_formInfo->m_pl_circleColor = varVal.value(); + flag = true; + } + else if ("圆线宽度" == strProperty) + { + this->m_formInfo->m_pl_circleLineWidth = varVal.toInt(); + flag = true; + } + else if ("是否填充" == strProperty) + { + this->m_formInfo->m_pl_isFillEnabled = varVal.toBool(); + flag = true; + } + else if ("填充颜色" == strProperty) + { + this->m_formInfo->m_pl_fillColor = varVal.value(); + flag = true; + } + else if ("线数" == strProperty) + { + this->m_formInfo->m_pl_lineNumber = varVal.toInt(); + flag = true; + } + else if ("统计线高度" == strProperty) + { + this->m_formInfo->m_pl_lineHeight = varVal.toDouble(); + flag = true; + } + else if ("线粗细" == strProperty) + { + this->m_formInfo->m_pl_lineThickness = varVal.toInt(); + flag = true; + } + else if ("线颜色" == strProperty) + { + this->m_formInfo->m_pl_lineColor = varVal.value(); + flag = true; + } + else if ("是否绘制标注?" == strProperty) + { + this->m_formInfo->m_pl_drawAnnotation = varVal.toBool(); + flag = true; + } + else if ("绘制直方图?" == strProperty) + { + this->m_formInfo->m_pl_drawHistogram = varVal.toBool(); + flag = true; + } + else if ("宽度" == strProperty) + { + this->m_formInfo->m_pl_baselineWidth = varVal.toInt(); + flag = true; + } + else if ("颜色" == strProperty) + { + this->m_formInfo->m_pl_baselineColor = varVal.value(); + flag = true; + } + else if ("统计间隔" == strProperty) + { + this->m_formInfo->m_pl_statInterval = varVal.toInt(); + flag = true; + } + else if ("最小倾角" == strProperty) + { + this->m_formInfo->m_pl_minInclination = varVal.toDouble(); + flag = true; + } + else if ("最大倾角" == strProperty) + { + this->m_formInfo->m_pl_maxInclination = varVal.toDouble(); + flag = true; + } + 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_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); } } diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index 572804c..f87a468 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -244,6 +244,7 @@ public: // 玫瑰图 void initRoseProperty(FormInfo *formInfo); + void changedRoseProperty(QString strProName, QVariant val); public slots: void SlotPropertyChanged(QtProperty *property, const QVariant &variant); diff --git a/logPlus/TransparentDraggableCorePhysics.cpp b/logPlus/TransparentDraggableCorePhysics.cpp index 0423273..eae285a 100644 --- a/logPlus/TransparentDraggableCorePhysics.cpp +++ b/logPlus/TransparentDraggableCorePhysics.cpp @@ -130,8 +130,6 @@ void TransparentDraggableCorePhysics::update() void TransparentDraggableCorePhysics::initRect() { - - // 连接鼠标事件 connect(mPlot, &QCustomPlot::mousePress, this, &TransparentDraggableCorePhysics::onMousePress); connect(mPlot, &QCustomPlot::mouseMove, this, &TransparentDraggableCorePhysics::onMouseMove); @@ -264,7 +262,7 @@ void TransparentDraggableCorePhysics::onMouseMove(QMouseEvent *event) default: break; } - this->setRange(m_left_Low, m_left_Low,20,true); + this->setRange(m_left_Low, m_left_Low, this->getCpCoreValue(), true); } void TransparentDraggableCorePhysics::onMouseRelease(QMouseEvent *event) @@ -545,25 +543,13 @@ void TransparentDraggableCorePhysics::setCpLeftBoundary(bool value) double y_min = mPlot->yAxis->range().lower; double y_max = mPlot->yAxis->range().upper; - double y_center = (y_min + y_max) / 2; - QPointF start = qcpItemLine->start->coords(); - QPointF end = qcpItemLine->end->coords(); - double targetYStart, targetYEnd; if (value) { - // ====================================== - // ✅ TRUE = 强制回到左边(固定公式) - // ====================================== - targetYStart = y_min + (y_max - start.y()); - targetYEnd = y_min + (y_max - end.y()); + qcpItemLine->start->setCoords(qcpItemLine->start->coords().x(), y_min); + qcpItemLine->end->setCoords(qcpItemLine->end->coords().x(), this->getCpCoreValue()); } else { - // ====================================== - // ✅ FALSE = 强制去到右边(固定公式) - // ====================================== - targetYStart = 2 * y_center - start.y(); - targetYEnd = 2 * y_center - end.y(); + qcpItemLine->start->setCoords(qcpItemLine->start->coords().x(), y_max); + qcpItemLine->end->setCoords(qcpItemLine->end->coords().x(), y_max - this->getCpCoreValue()); } - qcpItemLine->start->setCoords(start.x(), targetYStart); - qcpItemLine->end->setCoords(end.x(), targetYEnd); } bool TransparentDraggableCorePhysics::getCpSkipZeroInvalidValues() const diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index 90006ea..c594e5d 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -241,35 +241,22 @@ public: QColor m_cp_symbolFillColor; // 填充颜色 int m_cp_fieldName = 0; // 字段名称 - // 频率统计图 - // 数据 + // 数据(频率统计图、玫瑰图) + // 名称 int m_pl_dataType = 0; // 数据类型 + // 显示单位 + // 井文件名称 QString m_pl_azimuthCurve = "DDIR"; // 方位曲线 QString m_pl_inclinationCurve = "DANG"; // 倾角曲线 - // 字体相关配置 + // 字体(频率统计图、玫瑰图) + // 名称 + // 单位 QFont m_pl_fontScale = QFont("微软雅黑", 7); // 刻度字体大小 - // 控制曲线参数 + // 控制曲线参数(频率统计图、玫瑰图) QString m_pl_controlCurveName = "GRAD"; // 控制曲线名 double m_pl_controlMinValue = 0; // 控制最小值 double m_pl_controlMaxValue = 100; // 控制最大值 - // 方位频率绘图参数 - int m_pl_sectorCount = 36; // 扇形数量 - double m_pl_circleRadius = 50; // 圆半径(cm) - QColor m_pl_circleColor = Qt::black; // 圆线颜色 - int m_pl_circleLineWidth = 2; // 圆线宽度 - bool m_pl_isFillEnabled = true; // 是否启用填充 - QColor m_pl_fillColor = Qt::black; // 填充颜色 - // 倾角频率绘图参数 - int m_pl_lineNumber = 9; // 线数 - double m_pl_lineHeight = 2; // 统计线高度 - int m_pl_lineThickness = 2; // 线粗细 - QColor m_pl_lineColor = Qt::black; // 线颜色 - bool m_pl_drawAnnotation = true; // 是否绘制标注 - bool m_pl_drawHistogram = true; // 是否绘制直方图 - // 基线参数 - int m_pl_baselineWidth = 2; // 基线宽度 - QColor m_pl_baselineColor = Qt::black; // 基线颜色 - // 统计参数 + // 统计参数(频率统计图、玫瑰图) int m_pl_statInterval = 10; // 统计间隔 double m_pl_minInclination = 0; // 最小倾角 double m_pl_maxInclination = 90; // 最大倾角 @@ -290,8 +277,48 @@ public: bool m_pl_custom1 = false; // 自定义1 bool m_pl_custom2 = false; // 自定义2 + // 频率统计图 + // 方位频率绘图参数 + int m_pl_sectorCount = 36; // 扇形数量 + double m_pl_circleRadius = 50; // 圆半径(cm) + QColor m_pl_circleColor = Qt::black; // 圆线颜色 + int m_pl_circleLineWidth = 2; // 圆线宽度 + bool m_pl_isFillEnabled = true; // 是否启用填充 + QColor m_pl_fillColor = Qt::black; // 填充颜色 + // 倾角频率绘图参数 + int m_pl_lineNumber = 9; // 线数 + double m_pl_lineHeight = 2; // 统计线高度 + int m_pl_lineThickness = 2; // 线粗细 + QColor m_pl_lineColor = Qt::black; // 线颜色 + bool m_pl_drawAnnotation = true; // 是否绘制标注 + bool m_pl_drawHistogram = true; // 是否绘制直方图 + // 基线参数 + int m_pl_baselineWidth = 2; // 基线宽度 + QColor m_pl_baselineColor = Qt::black; // 基线颜色 + // 玫瑰图 - // 玫瑰图变量 + // 表数据字段 + QString m_rose_depth_field; // 深度字段 + QString m_rose_azimuth_field; // 方位字段 + QString m_rose_dip_field; // 倾角字段 + QString m_rose_attribute_field; // 属性字段 + + // 玫瑰图核心配置 + bool m_rose_sector_enabled; // 扇形(启用开关) + double m_rose_circle_radius_cm; // 圆半径(cm) + bool m_rose_radiation_circle_enabled; // 辐射圈(启用开关) + double m_rose_azimuth_print_interval; // 方位打印间隔 + QColor m_rose_circle_line_color; // 圆线颜色 + int m_rose_circle_line_width; // 圆线宽度 + QColor m_rose_stress_line_color; // 应力线颜色 + QColor m_rose_collapse_line_color; // 垮塌线颜色 + bool m_rose_draw_radiation_line; // 绘制辐射线? + bool m_rose_draw_wellbore_collapse; // 绘制井眼垮塌 + bool m_rose_fill_enabled; // 是否填充 + bool m_rose_draw_annotation; // 是否绘制标注? + + + int cpLineWidth() const; void setCpLineWidth(int cpLineWidth);