Compare commits

...

2 Commits

Author SHA1 Message Date
crqiqi77
2bfd16df4a Merge branch 'main' of http://git.hivekion.com:3000/jiayulong/logplus 2026-04-10 11:46:37 +08:00
crqiqi77
7b991586a1 裂缝 属性 2026-04-10 11:46:25 +08:00
5 changed files with 290 additions and 33 deletions

View File

@ -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<QFont>();
this->m_formInfo->repaint();
}
else if ("刻度" == strProperty)
{
this->m_formInfo->m_crack_fontScaleSize = varVal.value<QFont>();
this->m_formInfo->repaint();
}
else if ("标注" == strProperty)
{
this->m_formInfo->m_crack_fontAnnotationSize = varVal.value<QFont>();
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;
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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; // 扇形数量

View File

@ -132,7 +132,7 @@ QVector<QWidget *> 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")