套管组件,完成18个属性

This commit is contained in:
jiayulong 2026-03-20 18:04:15 +08:00
parent 8af9525efb
commit 76261bcea0
37 changed files with 1032 additions and 249 deletions

View File

@ -227,6 +227,12 @@ signals:
//改变沉积相属性,是否显示 //改变沉积相属性,是否显示
void sig_changeFacShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow); void sig_changeFacShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
//改变套管组件属性,是否显示
void sig_changeGuanShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
//改变套管组件属性,直径
void sig_changeGuanD(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, double newD);
// //
//void sig_addImageToPlot(QMyCustomPlot* customPlot, double left_Low, double right_Hight, QString imagePath); //void sig_addImageToPlot(QMyCustomPlot* customPlot, double left_Low, double right_Hight, QString imagePath);

View File

@ -1282,6 +1282,94 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant
m_formInfo->m_vmax = newRightScale; m_formInfo->m_vmax = newRightScale;
emit CallManage::getInstance()->sig_ChangeRightScale(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, m_strLineName, newRightScale); emit CallManage::getInstance()->sig_ChangeRightScale(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, m_strLineName, newRightScale);
} }
else if("绘制结构" == m_propertyData[pProperty] ||
"绘制管柱" == m_propertyData[pProperty] ||
"绘制工具" == m_propertyData[pProperty] ||
"标注工具" == m_propertyData[pProperty] ||
"绘制接箍" == m_propertyData[pProperty])
{
bool bShow = variant.value<bool>();
if(m_propertyData[pProperty] == "绘制结构")
{
m_formInfo->m_bDrawStruct_Tubing = bShow;
}
else if(m_propertyData[pProperty] == "绘制管柱")
{
m_formInfo->m_bDrawTubing_Tubing = bShow;
}
else if(m_propertyData[pProperty] == "绘制工具")
{
m_formInfo->m_bDrawTools_Tubing = bShow;
}
else if(m_propertyData[pProperty] == "标注工具")
{
m_formInfo->m_bDrawSPTool_Tubing = bShow;
}
else if(m_propertyData[pProperty] == "绘制接箍")
{
m_formInfo->m_bDrawCCL_Tubing = bShow;
}
//改变套管组件属性,是否显示
emit CallManage::getInstance()->sig_changeGuanShow(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, m_propertyData[pProperty], bShow);
}
else if("油管外径" == m_propertyData[pProperty]||
"套管内径" == m_propertyData[pProperty] ||
"套管外径" == m_propertyData[pProperty])
{
double newD = variant.value<double>();
if(m_propertyData[pProperty] == "油管外径")
{
m_formInfo->m_Oguan_Tubing = newD;
}
else if(m_propertyData[pProperty] == "套管内径")
{
m_formInfo->m_inD_Tubing = newD;
}
else if(m_propertyData[pProperty] == "套管外径")
{
m_formInfo->m_OutD_Tubing = newD;
}
//改变套管组件属性,直径
emit CallManage::getInstance()->sig_changeGuanD(m_formInfo->m_strUuid, m_formInfo->m_strSlfName, m_formInfo->m_strWellName, m_formInfo->m_strTrackName, m_formInfo->m_strLineName, m_propertyData[pProperty], newD);
}
}
else if (m_strCurrentProperty == TubingItem_Property)
{
//先处理通用属性
CommonPropertyChanged(pProperty, variant);
//套管组件item
if("标注" == m_propertyData[pProperty])
{
QString newDec = variant.value<QString>();
}
else if("深度(m)" == m_propertyData[pProperty])
{
//qDebug() << "深度(m)->改变";
if(m_tdGuan)
{
double depth = variant.value<double>();
m_tdGuan->setRange(-depth-m_tdGuan->mH/2.0, -depth+m_tdGuan->mH/2.0);
//保存
m_tdGuan->mPlot->SaveToSLF_Tubing();
}
}
else if("组件类型" == m_propertyData[pProperty])
{
//qDebug() << "组件类型->改变";
if(m_tdGuan)
{
QString newResult = variant.value<QString>();
m_tdGuan->setResult(newResult);
//
QCPRange currentRange = m_tdGuan->getRange();
m_tdGuan->setRange(currentRange.lower, currentRange.upper);
//保存
m_tdGuan->mPlot->SaveToSLF_Tubing();
}
}
} }
else if (m_strCurrentProperty == Depth_Property) // 深度 else if (m_strCurrentProperty == Depth_Property) // 深度
{ {
@ -3253,6 +3341,8 @@ void PropertyWidget::initTubingProperty(FormInfo *formInfo)
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String); _CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
_CreateVariantPropertyItem("对象", "显示名称", formInfo->m_strAliasName, QVariant::String); _CreateVariantPropertyItem("对象", "显示名称", formInfo->m_strAliasName, QVariant::String);
_CreateVariantPropertyItem("对象", "垂向绘制", formInfo->m_bVerticaDrawing, QVariant::Bool);
_CreateVariantPropertyItem("对象", "旋转角度(°)", formInfo->m_nRotationAngle, QVariant::Int);
_CreateVariantPropertyItem("对象", "字体", formInfo->m_curveNameFont, QVariant::Font); _CreateVariantPropertyItem("对象", "字体", formInfo->m_curveNameFont, QVariant::Font);
_CreateVariantPropertyItem("对象", "颜色", formInfo->m_lineColor, QVariant::Color); _CreateVariantPropertyItem("对象", "颜色", formInfo->m_lineColor, QVariant::Color);
@ -3260,9 +3350,59 @@ void PropertyWidget::initTubingProperty(FormInfo *formInfo)
_CreateVariantPropertyItem("显示设置", "左刻度", formInfo->m_vmin, QVariant::Double); _CreateVariantPropertyItem("显示设置", "左刻度", formInfo->m_vmin, QVariant::Double);
_CreateVariantPropertyItem("显示设置", "右刻度", formInfo->m_vmax, QVariant::Double); _CreateVariantPropertyItem("显示设置", "右刻度", formInfo->m_vmax, QVariant::Double);
_CreateVariantPropertyItem("绘制方式", "绘制结构", formInfo->m_bDrawStruct_Tubing, QVariant::Bool);
_CreateVariantPropertyItem("绘制方式", "绘制管柱", formInfo->m_bDrawTubing_Tubing, QVariant::Bool);
_CreateVariantPropertyItem("绘制方式", "绘制工具", formInfo->m_bDrawTools_Tubing, QVariant::Bool);
_CreateVariantPropertyItem("绘制方式", "标注工具", formInfo->m_bDrawSPTool_Tubing, QVariant::Bool);
_CreateVariantPropertyItem("绘制方式", "绘制接箍", formInfo->m_bDrawCCL_Tubing, QVariant::Bool);
_CreateVariantPropertyItem("绘制方式", "油管外径", formInfo->m_Oguan_Tubing, QVariant::Double);
_CreateVariantPropertyItem("绘制方式", "套管内径", formInfo->m_inD_Tubing, QVariant::Double);
_CreateVariantPropertyItem("绘制方式", "套管外径", formInfo->m_OutD_Tubing, QVariant::Double);
m_strCurrentProperty = Tubing_Property; m_strCurrentProperty = Tubing_Property;
} }
void PropertyWidget::initTubingItemProperty(TransparentDraggableGuan* tdGuan, double lower, double upper, QString strResult)
{
//初始化,清空
InitCurrentViewInfo();
FormInfo* formInfo = tdGuan->mPlot->m_formTrack->getFormInfoByParameters(tdGuan->mPlot->m_strUuid, tdGuan->mPlot->m_strWellName,
tdGuan->mPlot->m_strTrackName, tdGuan->mPlot->m_strLineName);
if (formInfo != NULL)
{
m_formInfo = formInfo;
m_strUuid = formInfo->m_strUuid;
m_strTrackUuid = formInfo->m_strTrackUuid;
//
m_strSlfName = formInfo->m_strSlfName;
m_strWellName = formInfo->m_strWellName;
m_strTrackName = formInfo->m_strTrackName;
m_strLineName = formInfo->m_strLineName;
_CreateVariantPropertyItem("通常", "选择井曲线", m_strLineName + "@" + m_strSlfName, QVariant::String);
_CreateVariantPropertyItem("对象", "显示名称", formInfo->m_strAliasName, QVariant::String);
_CreateVariantPropertyItem("对象", "垂向绘制", formInfo->m_bVerticaDrawing, QVariant::Bool);
_CreateVariantPropertyItem("对象", "旋转角度(°)", formInfo->m_nRotationAngle, QVariant::Int);
_CreateVariantPropertyItem("对象", "字体", formInfo->m_curveNameFont, QVariant::Font);
_CreateVariantPropertyItem("对象", "颜色", formInfo->m_lineColor, QVariant::Color);
_CreateVariantPropertyItem("显示设置", "显示单位", formInfo->m_strUnit, QVariant::String);
_CreateVariantPropertyItem("显示设置", "左刻度", formInfo->m_vmin, QVariant::Double);
_CreateVariantPropertyItem("显示设置", "右刻度", formInfo->m_vmax, QVariant::Double);
}
//当前属性类型
m_strCurrentProperty = TubingItem_Property;
m_tdGuan = tdGuan;
//
_CreateVariantPropertyItem("当前项", "深度(m)", -(upper+lower)/2.0, QVariant::Double);
_CreateVariantPropertyItem("当前项", "组件类型", strResult, VariantManager::filePathTypeId());
}
void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal) void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal)
{ {
if ("主刻度线长度" == strProperty) if ("主刻度线长度" == strProperty)

View File

@ -27,6 +27,7 @@
#include "TransparentDraggableRect.h" #include "TransparentDraggableRect.h"
#include "TransparentDraggableLayer.h" #include "TransparentDraggableLayer.h"
#include "TransparentDraggableJiegutext.h" #include "TransparentDraggableJiegutext.h"
#include "transparentdraggableGuan.h"
#include "TransparentGroupResult.h" #include "TransparentGroupResult.h"
@ -137,6 +138,7 @@ public:
bool m_bSelfChange=false; bool m_bSelfChange=false;
TransparentGroupResult* m_tdJieshi; TransparentGroupResult* m_tdJieshi;
//
TransparentDraggableGujing* m_tdGujing; TransparentDraggableGujing* m_tdGujing;
TransparentDraggableImage* m_tdImage; TransparentDraggableImage* m_tdImage;
TransparentDraggableSwallCore* m_tdSwallCore; TransparentDraggableSwallCore* m_tdSwallCore;
@ -144,6 +146,7 @@ public:
TransparentDraggableRect* m_tdText; TransparentDraggableRect* m_tdText;
TransparentDraggableLayer* m_tdLayer; TransparentDraggableLayer* m_tdLayer;
TransparentDraggableJiegutext* m_tdJiegutext; TransparentDraggableJiegutext* m_tdJiegutext;
TransparentDraggableGuan* m_tdGuan;
public: public:
QWidget* GetPropertyWidget(); QWidget* GetPropertyWidget();
@ -215,6 +218,7 @@ public:
//套管组件 //套管组件
void initTubingProperty(FormInfo *formInfo); void initTubingProperty(FormInfo *formInfo);
void initTubingItemProperty(TransparentDraggableGuan* tdGuan, double lower, double upper, QString strResult);
void ChangFillProperty();//填充属性改变 void ChangFillProperty();//填充属性改变
void ChangHeadItemProperty();//图头项改变 void ChangHeadItemProperty();//图头项改变

View File

@ -35,7 +35,7 @@ void TransparentDraggableFac::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableFac::setRange(double left_Low, double right_Hight) void TransparentDraggableFac::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -48,7 +48,11 @@ void TransparentDraggableFac::setRange(double left_Low, double right_Hight)
mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos), mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
7*(lY1 + lY2)/8.0); // 设置文本在矩形中心位置 7*(lY1 + lY2)/8.0); // 设置文本在矩形中心位置
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -24,7 +24,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -397,7 +397,7 @@ void TransparentDraggableGeoLith::drawOil(double left_Low, double right_Hight, d
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableGeoLith::setRange(double left_Low, double right_Hight, bool bRefresh) void TransparentDraggableGeoLith::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -461,7 +461,8 @@ void TransparentDraggableGeoLith::setRange(double left_Low, double right_Hight,
updateHandles(); updateHandles();
if(bRefresh) //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{ {
mPlot->replot(); mPlot->replot();
} }

View File

@ -171,7 +171,7 @@ void TransparentDraggableGujing::drawResult(double left_Low, double right_Hight,
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableGujing::setRange(double left_Low, double right_Hight) void TransparentDraggableGujing::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -185,17 +185,16 @@ void TransparentDraggableGujing::setRange(double left_Low, double right_Hight)
mPixmap->bottomRight->setCoords(left_Low, lY2); mPixmap->bottomRight->setCoords(left_Low, lY2);
drawResult(left_Low, right_Hight, lY1, lY2); drawResult(left_Low, right_Hight, lY1, lY2);
//mItemTitle->position->setCoords(0.5, 0.5);
// 设置父锚点,定位点 // 设置父锚点,定位点
//mItemTitle->position->setParentAnchor(mRect->bottom);
mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2, mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置 (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -35,7 +35,7 @@ public:
void drawResult(double left_Low, double right_Hight, double lY1, double lY2); void drawResult(double left_Low, double right_Hight, double lY1, double lY2);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -64,7 +64,7 @@ void TransparentDraggableJiegutext::setTitle(QStringList strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableJiegutext::setRange(double left_Low, double right_Hight) void TransparentDraggableJiegutext::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -89,7 +89,11 @@ void TransparentDraggableJiegutext::setRange(double left_Low, double right_Hight
} }
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -25,7 +25,7 @@ public:
void setTitle(QStringList strTitle); void setTitle(QStringList strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -37,7 +37,7 @@ void TransparentDraggableLayer::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableLayer::setRange(double left_Low, double right_Hight) void TransparentDraggableLayer::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -48,18 +48,17 @@ void TransparentDraggableLayer::setRange(double left_Low, double right_Hight)
//位置与rect不一样否则图像反转 //位置与rect不一样否则图像反转
drawLith(left_Low, right_Hight, lY1, lY2); drawLith(left_Low, right_Hight, lY1, lY2);
// mPixmap->topLeft->setCoords(right_Hight, lY1);
// mPixmap->bottomRight->setCoords(left_Low, lY2);
float flNewPos = mPlot->xAxis->coordToPixel((left_Low + right_Hight)/2.0) - 15; float flNewPos = mPlot->xAxis->coordToPixel((left_Low + right_Hight)/2.0) - 15;
mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos), mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置 (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -24,7 +24,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -32,7 +32,7 @@ void TransparentDraggableLine::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableLine::setRange(double left_Low, double right_Hight) void TransparentDraggableLine::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
m_left_Low = left_Low; m_left_Low = left_Low;
m_right_Hight = right_Hight; m_right_Hight = right_Hight;
@ -54,7 +54,11 @@ void TransparentDraggableLine::setRange(double left_Low, double right_Hight)
qcpItemLine->end->setCoords(right_Hight, lY2);//圆心位置 qcpItemLine->end->setCoords(right_Hight, lY2);//圆心位置
//updateHandles(); //updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -24,7 +24,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
void getRange(); void getRange();

View File

@ -50,7 +50,7 @@ void TransparentDraggableMFac::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableMFac::setRange(double left_Low, double right_Hight) void TransparentDraggableMFac::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -101,7 +101,11 @@ void TransparentDraggableMFac::setRange(double left_Low, double right_Hight)
} }
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -24,7 +24,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -35,7 +35,7 @@ void TransparentDraggablePhase::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggablePhase::setRange(double left_Low, double right_Hight) void TransparentDraggablePhase::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -69,7 +69,11 @@ void TransparentDraggablePhase::setRange(double left_Low, double right_Hight)
} }
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -23,7 +23,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -37,7 +37,7 @@ void TransparentDraggableRect::setTitle(QString strTitle)
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableRect::setRange(double left_Low, double right_Hight) void TransparentDraggableRect::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -54,11 +54,12 @@ void TransparentDraggableRect::setRange(double left_Low, double right_Hight)
mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos), mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置 (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -23,7 +23,7 @@ public:
void setTitle(QString strTitle); void setTitle(QString strTitle);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -173,33 +173,14 @@ void TransparentDraggableResult::setRange(double left_Low, double right_Hight, b
mRect->topLeft->setCoords(left_Low, lY1); mRect->topLeft->setCoords(left_Low, lY1);
mRect->bottomRight->setCoords(right_Hight, mPlot->yAxis->range().upper); mRect->bottomRight->setCoords(right_Hight, mPlot->yAxis->range().upper);
//位置与rect不一样否则图像反转 //位置与rect不一样否则图像反转
// double dbCenterX = (right_Hight+left_Low)/2.0; //right_Hight; //
// double dbCenterY = (lY1+lY2)/2.0; //lY2; //
// double x1 = mPlot->xAxis->coordToPixel(dbCenterX);
// double y1 = mPlot->yAxis->coordToPixel(dbCenterY);
// mPixmap->topLeft->setCoords(mPlot->xAxis->pixelToCoord(x1), mPlot->yAxis->pixelToCoord(y1));
// mPixmap->topLeft->setCoords(right_Hight, lY2);
// mPixmap->bottomRight->setCoords(left_Low, lY1);
mPixmap->topLeft->setCoords(right_Hight, lY1); mPixmap->topLeft->setCoords(right_Hight, lY1);
mPixmap->bottomRight->setCoords(left_Low, lY2); mPixmap->bottomRight->setCoords(left_Low, lY2);
drawResult(left_Low, right_Hight, lY1, lY2); drawResult(left_Low, right_Hight, lY1, lY2);
// mPixmap->topLeft->setCoords(right_Hight, lY1);
// mPixmap->bottomRight->setCoords(left_Low, lY1);
//mItemTitle->position->setCoords(0.5, 0.5);
// 设置父锚点,定位点
//mItemTitle->position->setParentAnchor(mRect->bottom);
//mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
// (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2, mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
lY2 + lY2/2); lY2 + lY2/2);
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
updateHandles(); updateHandles();
//后面统一刷新上方和下方rect //后面统一刷新上方和下方rect
if(bupdate) if(bupdate)

View File

@ -267,7 +267,7 @@ void TransparentDraggableSwallCore::drawOil(double left_Low, double right_Hight,
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableSwallCore::setRange(double left_Low, double right_Hight) void TransparentDraggableSwallCore::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -277,27 +277,12 @@ void TransparentDraggableSwallCore::setRange(double left_Low, double right_Hight
mRect->topLeft->setCoords(left_Low, lY1+(m_fLeftSpace+m_fTriangleLen)); mRect->topLeft->setCoords(left_Low, lY1+(m_fLeftSpace+m_fTriangleLen));
mRect->bottomRight->setCoords(right_Hight, lY1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+m_fColorWordLen); mRect->bottomRight->setCoords(right_Hight, lY1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+m_fColorWordLen);
// //位置与rect不一样否则图像反转
// mPixmap_Color->topLeft->setCoords(right_Hight, lY1+(lY2-lY1)/4);
// mPixmap_Color->bottomRight->setCoords(left_Low, lY2);
//
//mPixmap_Lith->topLeft->setCoords(right_Hight, lY1+(lY2-lY1)/4);
//mPixmap_Lith->bottomRight->setCoords(left_Low, lY2);
drawLith(left_Low, right_Hight, lY1, lY2); drawLith(left_Low, right_Hight, lY1, lY2);
//位置与rect不一样否则图像反转 drawOil(left_Low, right_Hight, lY1, lY2);
//mPixmap_Oil->topLeft->setCoords(right_Hight, lY1);
//mPixmap_Oil->bottomRight->setCoords(left_Low, lY1+(lY2-lY1)/4);
drawOil(left_Low, right_Hight, lY1, lY2);
//mItemTitle->position->setCoords(0.5, 0.5); mItemTitle->position->setCoords(mRect->bottomRight->coords().x(),
// 设置父锚点,定位点 lY1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+20);
//mItemTitle->position->setParentAnchor(mRect->bottom);
mItemTitle->position->setCoords(mRect->bottomRight->coords().x(), //(mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
lY1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+20); //(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
//三角形2边 //三角形2边
m_qcpItemLine1->start->setCoords((left_Low+right_Hight)/2, lY1+m_fLeftSpace); m_qcpItemLine1->start->setCoords((left_Low+right_Hight)/2, lY1+m_fLeftSpace);
@ -310,7 +295,11 @@ void TransparentDraggableSwallCore::setRange(double left_Low, double right_Hight
m_qcpItemLine3->end->setCoords((left_Low+right_Hight)/2, lY1+(m_fLeftSpace+m_fTriangleLen)); m_qcpItemLine3->end->setCoords((left_Low+right_Hight)/2, lY1+(m_fLeftSpace+m_fTriangleLen));
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -39,7 +39,7 @@ public:
void drawOil(double left_Low, double right_Hight, double lY1, double lY2); void drawOil(double left_Low, double right_Hight, double lY1, double lY2);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -777,6 +777,7 @@ void FormDraw::DisplayTubing_One(QJsonObject lineObjInfo)
QString strSlfName = ""; QString strSlfName = "";
QString strWellName = ""; QString strWellName = "";
QString strLineName = ""; QString strLineName = "";
QString strUnit = "";//单位
QString strAliasName = "";//显示名称 QString strAliasName = "";//显示名称
QFont curveNameFont("微软雅黑", 10); // 名称字体 QFont curveNameFont("微软雅黑", 10); // 名称字体
QColor lineColor = QColor(0, 0, 0);//颜色 QColor lineColor = QColor(0, 0, 0);//颜色
@ -823,6 +824,14 @@ void FormDraw::DisplayTubing_One(QJsonObject lineObjInfo)
//qDebug() << "strAliasName:" << strAliasName; //qDebug() << "strAliasName:" << strAliasName;
} }
} }
if (lineObjInfo.contains("Unit"))
{
QJsonValue value = lineObjInfo.value("Unit");
if (value.isString()) {
strUnit = value.toString();
//qDebug() << "strUnit:" << strUnit;
}
}
//字体 //字体
if (lineObjInfo.contains("curveNameFont")) if (lineObjInfo.contains("curveNameFont"))
{ {
@ -837,8 +846,98 @@ void FormDraw::DisplayTubing_One(QJsonObject lineObjInfo)
{ {
lineColor.setNamedColor(lineObjInfo.value("lineColor").toString()); lineColor.setNamedColor(lineObjInfo.value("lineColor").toString());
} }
//垂向绘制
bool bVerticaDrawing = false;
if (lineObjInfo.contains("VerticaDrawing"))
{
QJsonValue value = lineObjInfo.value("VerticaDrawing");
if (value.isBool()) {
bVerticaDrawing = value.toBool();
}
}
// 旋转角度
int nRotationAngle = 0;
if (lineObjInfo.contains("RotationAngle"))
{
QJsonValue value = lineObjInfo.value("RotationAngle");
if (value.isDouble()) {
nRotationAngle = value.toInt();
}
}
//套管組件
bool bDrawStruct_Tubing = true; //绘制结构
bool bDrawTubing_Tubing = true; //绘制管柱
bool bDrawTools_Tubing = true; //绘制工具
bool bDrawSPTool_Tubing = true; //标注工具
bool bDrawCCL_Tubing = false; //绘制接箍
float Oguan_Tubing = 63.5; //油管外径
float inD_Tubing = 121.36; //套管内径
float OutD_Tubing = 139.7; //套管外径
if (lineObjInfo.contains("DrawStruct"))
{
QJsonValue value = lineObjInfo.value("DrawStruct");
if (value.isBool()) {
bDrawStruct_Tubing = value.toBool();
}
}
//
if (lineObjInfo.contains("DrawTubing"))
{
QJsonValue value = lineObjInfo.value("DrawTubing");
if (value.isBool()) {
bDrawTubing_Tubing = value.toBool();
}
}
//
if (lineObjInfo.contains("DrawTools"))
{
QJsonValue value = lineObjInfo.value("DrawTools");
if (value.isBool()) {
bDrawTools_Tubing = value.toBool();
}
}
//
if (lineObjInfo.contains("DrawSPTool"))
{
QJsonValue value = lineObjInfo.value("DrawSPTool");
if (value.isBool()) {
bDrawSPTool_Tubing = value.toBool();
}
}
//
if (lineObjInfo.contains("DrawCCL"))
{
QJsonValue value = lineObjInfo.value("DrawCCL");
if (value.isBool()) {
bDrawCCL_Tubing = value.toBool();
}
}
//----
if (lineObjInfo.contains("Oguan"))
{
QJsonValue value = lineObjInfo.value("Oguan");
if (value.isDouble()) {
Oguan_Tubing = value.toDouble();
}
}
//
if (lineObjInfo.contains("inD"))
{
QJsonValue value = lineObjInfo.value("inD");
if (value.isDouble()) {
inD_Tubing = value.toDouble();
}
}
//
if (lineObjInfo.contains("OutD"))
{
QJsonValue value = lineObjInfo.value("OutD");
if (value.isDouble()) {
OutD_Tubing = value.toDouble();
}
}
QString folderPath = GetLogdataPath(); QString folderPath = GetLogdataPath();
folderPath = folderPath + g_prjname; folderPath = folderPath + g_prjname;
@ -850,7 +949,63 @@ void FormDraw::DisplayTubing_One(QJsonObject lineObjInfo)
listOtherProperty.append(strAliasName);//别名 listOtherProperty.append(strAliasName);//别名
listOtherProperty.append(lineColor.name());//名称颜色 listOtherProperty.append(lineColor.name());//名称颜色
listOtherProperty.append(curveNameFont.toString());//名称字体 listOtherProperty.append(curveNameFont.toString());//名称字体
listOtherProperty.append(strUnit);//单位
if(bVerticaDrawing)//垂向绘制
{
listOtherProperty.append("VerticaDrawing");
}
else{
listOtherProperty.append("0");
}
//
listOtherProperty.append(QString::number(nRotationAngle));//旋转角度
//
if(bDrawStruct_Tubing)
{
listOtherProperty.append("DrawStruct");
}
else{
listOtherProperty.append("0");
}
//
if(bDrawTubing_Tubing)
{
listOtherProperty.append("DrawTubing");
}
else{
listOtherProperty.append("0");
}
//
if(bDrawTools_Tubing)
{
listOtherProperty.append("DrawTools");
}
else{
listOtherProperty.append("0");
}
//
if(bDrawSPTool_Tubing)
{
listOtherProperty.append("DrawSPTool");
}
else{
listOtherProperty.append("0");
}
//
if(bDrawCCL_Tubing)
{
listOtherProperty.append("DrawCCL");
}
else{
listOtherProperty.append("0");
}
//
listOtherProperty.append(QString::number(Oguan_Tubing));//油管外径
listOtherProperty.append(QString::number(inD_Tubing));//套管内径
listOtherProperty.append(QString::number(OutD_Tubing));//套管外径
//套管組件 //套管組件
this->s_addTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, 0, listOtherProperty); // this->s_addTubingstring(m_strUuid, strSlfName, strWellName, m_strTrackName, strLineName, 0, listOtherProperty); //
} }
@ -2985,9 +3140,59 @@ void FormDraw::s_addTubingstring(QString strUuid, QString strSlfName, QString st
//------------------- //-------------------
int iMyWidth = curv->m_OutD_Tubing; //暂时按照套管外径 //curv->axisRect(0)->width(); int iMyWidth = curv->m_OutD_Tubing; //暂时按照套管外径 //curv->axisRect(0)->width();
if(listOtherProperty.size()>=6) if(listOtherProperty.size()>=14)
{ {
iMyWidth = listOtherProperty[5].toDouble(); //
if(listOtherProperty[6]=="DrawStruct")
{
curv->m_bDrawStruct_Tubing = true;
}
else
{
curv->m_bDrawStruct_Tubing = false;
}
//
if(listOtherProperty[7]=="DrawTubing")
{
curv->m_bDrawTubing_Tubing = true;
}
else
{
curv->m_bDrawTubing_Tubing = false;
}
//
if(listOtherProperty[8]=="DrawTools")
{
curv->m_bDrawTools_Tubing = true;
}
else
{
curv->m_bDrawTools_Tubing = false;
}
//
if(listOtherProperty[9]=="DrawSPTool")
{
curv->m_bDrawSPTool_Tubing = true;
}
else
{
curv->m_bDrawSPTool_Tubing = false;
}
//
if(listOtherProperty[10]=="DrawCCL")
{
curv->m_bDrawCCL_Tubing = true;
}
else
{
curv->m_bDrawCCL_Tubing = false;
}
//
curv->m_Oguan_Tubing = listOtherProperty[11].toDouble();
curv->m_inD_Tubing = listOtherProperty[12].toDouble();
curv->m_OutD_Tubing = listOtherProperty[13].toDouble();
//
iMyWidth = listOtherProperty[13].toDouble();
} }
m_LeftVal = 0; m_LeftVal = 0;
@ -3038,7 +3243,7 @@ void FormDraw::s_addTubingstring(QString strUuid, QString strSlfName, QString st
} }
QString strUnit = "mm"; QString strUnit = "mm";
if(listOtherProperty.size()>=6) if(listOtherProperty.size()>=14)
{ {
strUnit = listOtherProperty[3]; strUnit = listOtherProperty[3];
} }

View File

@ -184,6 +184,19 @@ QJsonObject FormInfo::makeJson()
else if (m_strType == "TubingstringObject") else if (m_strType == "TubingstringObject")
{ {
//套管组件 //套管组件
//垂向绘制
rootObj["VerticaDrawing"] = m_bVerticaDrawing;
rootObj["RotationAngle"] = m_nRotationAngle;
//
rootObj["DrawStruct"] = m_bDrawStruct_Tubing;
rootObj["DrawTubing"] = m_bDrawTubing_Tubing;
rootObj["DrawTools"] = m_bDrawTools_Tubing;
rootObj["DrawSPTool"] = m_bDrawSPTool_Tubing;
rootObj["DrawCCL"] = m_bDrawCCL_Tubing;
//
rootObj["Oguan"] = m_Oguan_Tubing;
rootObj["inD"] = m_inD_Tubing;
rootObj["OutD"] = m_OutD_Tubing;
//item属性写入slf文件不需要此次记录 //item属性写入slf文件不需要此次记录
return rootObj; return rootObj;

View File

@ -182,6 +182,16 @@ public:
bool m_bDrawPhase = true; // 绘制亚相 bool m_bDrawPhase = true; // 绘制亚相
bool m_bDrawMFacName = true; // 微相名称 bool m_bDrawMFacName = true; // 微相名称
//套管组件
bool m_bDrawStruct_Tubing = true; //绘制结构
bool m_bDrawTubing_Tubing = true; //绘制管柱
bool m_bDrawTools_Tubing = true; //绘制工具
bool m_bDrawSPTool_Tubing = true; //标注工具
bool m_bDrawCCL_Tubing = false; //绘制接箍
float m_Oguan_Tubing = 63.5; //油管外径
float m_inD_Tubing = 121.36; //套管内径
float m_OutD_Tubing = 139.7; //套管外径
//tvd //tvd
//斜井三图一表(井斜数据表参数) //斜井三图一表(井斜数据表参数)
QString m_Title_table; QString m_Title_table;

View File

@ -1104,11 +1104,74 @@ void FormTrack::s_addTubingstring(QString strSlfName, QString strWellName, QStri
formInfo->setFrontColor(QColor(0,0,0)); formInfo->setFrontColor(QColor(0,0,0));
formInfo->setBackColor(QColor(255,255,255)); formInfo->setBackColor(QColor(255,255,255));
// //
if(listOtherProperty.size()>=3) if(listOtherProperty.size()>=6)
{ {
QFont curveNameFont("微软雅黑", 10); // 名称字体 QFont curveNameFont("微软雅黑", 10); // 名称字体
curveNameFont.fromString(listOtherProperty[2]); curveNameFont.fromString(listOtherProperty[2]);
formInfo->m_curveNameFont = curveNameFont; formInfo->m_curveNameFont = curveNameFont;
//
if(listOtherProperty[4]=="VerticaDrawing")
{
formInfo->m_bVerticaDrawing = true;
}
else
{
formInfo->m_bVerticaDrawing = false;
}
//
formInfo->m_nRotationAngle = listOtherProperty[4].toInt();
}
if(listOtherProperty.size()>=14)
{
//
if(listOtherProperty[6]=="DrawStruct")
{
formInfo->m_bDrawStruct_Tubing = true;
}
else
{
formInfo->m_bDrawStruct_Tubing = false;
}
//
if(listOtherProperty[7]=="DrawTubing")
{
formInfo->m_bDrawTubing_Tubing = true;
}
else
{
formInfo->m_bDrawTubing_Tubing = false;
}
//
if(listOtherProperty[8]=="DrawTools")
{
formInfo->m_bDrawTools_Tubing = true;
}
else
{
formInfo->m_bDrawTools_Tubing = false;
}
//
if(listOtherProperty[9]=="DrawSPTool")
{
formInfo->m_bDrawSPTool_Tubing = true;
}
else
{
formInfo->m_bDrawSPTool_Tubing = false;
}
//
if(listOtherProperty[10]=="DrawCCL")
{
formInfo->m_bDrawCCL_Tubing = true;
}
else
{
formInfo->m_bDrawCCL_Tubing = false;
}
//
formInfo->m_Oguan_Tubing = listOtherProperty[11].toDouble();
formInfo->m_inD_Tubing = listOtherProperty[12].toDouble();
formInfo->m_OutD_Tubing = listOtherProperty[13].toDouble();
} }
//设置高度 //设置高度
ui->tableWidget->setRowHeight(row, 100); ui->tableWidget->setRowHeight(row, 100);

View File

@ -149,6 +149,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
connect(CallManage::getInstance(), SIGNAL(sig_changeGeoLithShow(QString, QString, QString, QString, QString, QString, bool)), this, SLOT(s_changeGeoLithShow(QString, QString, QString, QString, QString, QString, bool))); connect(CallManage::getInstance(), SIGNAL(sig_changeGeoLithShow(QString, QString, QString, QString, QString, QString, bool)), this, SLOT(s_changeGeoLithShow(QString, QString, QString, QString, QString, QString, bool)));
//改变沉积相属性,是否显示 //改变沉积相属性,是否显示
connect(CallManage::getInstance(), SIGNAL(sig_changeFacShow(QString, QString, QString, QString, QString, QString, bool)), this, SLOT(s_changeFacShow(QString, QString, QString, QString, QString, QString, bool))); connect(CallManage::getInstance(), SIGNAL(sig_changeFacShow(QString, QString, QString, QString, QString, QString, bool)), this, SLOT(s_changeFacShow(QString, QString, QString, QString, QString, QString, bool)));
//改变套管组件属性,是否显示
connect(CallManage::getInstance(), SIGNAL(sig_changeGuanShow(QString, QString, QString, QString, QString, QString, bool)), this, SLOT(s_changeGuanShow(QString, QString, QString, QString, QString, QString, bool)));
//改变套管组件属性,直径
connect(CallManage::getInstance(), SIGNAL(sig_changeGuanD(QString, QString, QString, QString, QString, QString, double)), this, SLOT(s_changeGuanD(QString, QString, QString, QString, QString, QString, double)));
} }
void QMyCustomPlot::initGeometry(QString strUuid, int nscale, int nW) void QMyCustomPlot::initGeometry(QString strUuid, int nscale, int nW)
@ -958,6 +962,32 @@ void QMyCustomPlot::mouseMoveEvent(QMouseEvent *event)
} }
} }
} }
//沉积相
QObjectList objList_MFac = m_mapDraggable_MFac.values();
for( int i = 0; i< objList_MFac.size(); i++)
{
TransparentDraggableMFac* tdMFac = qobject_cast<TransparentDraggableMFac*>(objList_MFac.at(i));
if (tdMFac)
{
if (tdMFac->getCursor() > nmaxCursor)
{
nmaxCursor = tdMFac->getCursor();
}
}
}
//套管组件
QObjectList objList_Guan = m_mapDraggable_Guan.values();
for( int i = 0; i< objList_Guan.size(); i++)
{
TransparentDraggableGuan* tdGuan = qobject_cast<TransparentDraggableGuan*>(objList_Guan.at(i));
if (tdGuan)
{
if (tdGuan->getCursor() > nmaxCursor)
{
nmaxCursor = tdGuan->getCursor();
}
}
}
if (nmaxCursor == 2) if (nmaxCursor == 2)
{ {
@ -1588,7 +1618,7 @@ void QMyCustomPlot::onEditLayer()
{ {
QColor bkColor(255,255,255); QColor bkColor(255,255,255);
//添加地质分层 //添加地质分层
this->addLayerToPlot(left_Low, right_Hight, "", bkColor); this->addLayerToPlot(left_Low, right_Hight, "", true, bkColor);
//保存 //保存
this->SaveToSLF_Layer(); this->SaveToSLF_Layer();
@ -2886,8 +2916,10 @@ void QMyCustomPlot::moveItems_SWallCore()
pDraggableRect->m_fLeftSpace += dleft*g_dPixelPerCm; pDraggableRect->m_fLeftSpace += dleft*g_dPixelPerCm;
//刷新 //刷新
QCPRange tmpRange = pDraggableRect->getRange(); QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper); pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
} }
//统一刷新
replot();
//保存 //保存
this->SaveToSLF_SwallCore(); this->SaveToSLF_SwallCore();
@ -3373,11 +3405,11 @@ bool QMyCustomPlot::LoadFromSLF_GeoLith(QString strSlfName, QString strLineName)
} }
//不单独刷新 //不单独刷新
bool bRefresh = true; bool bRefresh = false;//true;
this->addGeoLithToPlot(-m_Result->EDEP, -m_Result->SDEP, Lith, Oil, Color, bRefresh); this->addGeoLithToPlot(-m_Result->EDEP, -m_Result->SDEP, Lith, Oil, Color, bRefresh);
} }
//最后统一刷新 //最后统一刷新
//widget->replot(); this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
delete m_Result; delete m_Result;
@ -3521,8 +3553,10 @@ bool QMyCustomPlot::LoadFromSLF_SwallCore(QString strSlfName, QString strLineNam
if(width<=0) width=1; if(width<=0) width=1;
// //
addSwallCoreToPlot(-m_Result.Depth, LithologyImage, OilGasImage, ColorImage, Sideleft, width, m_Result.CoreColor); addSwallCoreToPlot(-m_Result.Depth, LithologyImage, OilGasImage, ColorImage, Sideleft, width, m_Result.CoreColor, false);
} }
//统一刷新
this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
} }
delete logio; delete logio;
@ -3936,8 +3970,10 @@ bool QMyCustomPlot::LoadFromSLF_Gujing(QString strSlfName, QString strLineName)
result=QDir::toNativeSeparators(svg); result=QDir::toNativeSeparators(svg);
//显示固井 //显示固井
addGujingToPlot(-EDEP, -SDEP, result); addGujingToPlot(-EDEP, -SDEP, result, false);
} }
//统一刷新
this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
delete m_Result; delete m_Result;
} }
@ -4602,7 +4638,7 @@ void QMyCustomPlot::addLineToPlot(double left_Low, double right_Hight, const QSt
m_mapDraggable_Line[strUuid] = dragRect; m_mapDraggable_Line[strUuid] = dragRect;
} }
void QMyCustomPlot::addTextToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor) void QMyCustomPlot::addTextToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4612,14 +4648,14 @@ void QMyCustomPlot::addTextToPlot(double left_Low, double right_Hight, const QSt
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
//最小宽度 //最小宽度
dragRect->setMinWidth(0.1); dragRect->setMinWidth(0.1);
m_mapDraggable_Rect[strUuid] = dragRect; m_mapDraggable_Rect[strUuid] = dragRect;
} }
void QMyCustomPlot::addLayerToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor) void QMyCustomPlot::addLayerToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4629,7 +4665,7 @@ void QMyCustomPlot::addLayerToPlot(double left_Low, double right_Hight, const QS
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
//最小宽度 //最小宽度
dragRect->setMinWidth(0.1); dragRect->setMinWidth(0.1);
@ -4685,7 +4721,7 @@ void QMyCustomPlot::addResultToPlot(double left_Low, double right_Hight, QStrin
m_mapDraggable_Result[strUuid] = dragRect; m_mapDraggable_Result[strUuid] = dragRect;
} }
void QMyCustomPlot::addSwallCoreToPlot(double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor) void QMyCustomPlot::addSwallCoreToPlot(double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor, bool bRefresh)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4703,7 +4739,7 @@ void QMyCustomPlot::addSwallCoreToPlot(double Depth, QString LithologyImage, QSt
double x1 = this->xAxis->coordToPixel(Depth); double x1 = this->xAxis->coordToPixel(Depth);
// //
double Depth2 = this->xAxis->pixelToCoord(x1-h); double Depth2 = this->xAxis->pixelToCoord(x1-h);
dragRect->setRange(Depth, Depth2); dragRect->setRange(Depth, Depth2, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(QColor(255, 255, 255, 80)); // 半透明红色255, 100, 100, 80 dragRect->setColor(QColor(255, 255, 255, 80)); // 半透明红色255, 100, 100, 80
//最小宽度 //最小宽度
@ -4741,7 +4777,7 @@ void QMyCustomPlot::addGeoLithToPlot(double left_Low, double right_Hight, const
//this->replot(); //this->replot();
} }
void QMyCustomPlot::addGujingToPlot(double left_Low, double right_Hight, const QString strResult) void QMyCustomPlot::addGujingToPlot(double left_Low, double right_Hight, const QString strResult, bool bRefresh)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4751,7 +4787,7 @@ void QMyCustomPlot::addGujingToPlot(double left_Low, double right_Hight, const Q
//图片提前设值后面setRange改变 //图片提前设值后面setRange改变
dragRect->setResult(strResult); dragRect->setResult(strResult);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(QColor(255, 255, 255, 80)); // 半透明红色 dragRect->setColor(QColor(255, 255, 255, 80)); // 半透明红色
//最小宽度 //最小宽度
@ -4763,7 +4799,7 @@ void QMyCustomPlot::addGujingToPlot(double left_Low, double right_Hight, const Q
} }
//气测/FMT/射孔/文本 //气测/FMT/射孔/文本
void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, const QStringList strList_coredat, QColor crColor) void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, const QStringList strList_coredat, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4771,7 +4807,7 @@ void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, cons
// 在初始化代码中 // 在初始化代码中
TransparentDraggableJiegutext *dragRect = new TransparentDraggableJiegutext(this, strUuid, 1.0, strText); TransparentDraggableJiegutext *dragRect = new TransparentDraggableJiegutext(this, strUuid, 1.0, strText);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
//最小宽度 //最小宽度
@ -4782,7 +4818,7 @@ void QMyCustomPlot::addJiegutextToPlot(double left_Low, double right_Hight, cons
} }
//沉积相-微相 //沉积相-微相
void QMyCustomPlot::addMFacToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor) void QMyCustomPlot::addMFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4790,7 +4826,7 @@ void QMyCustomPlot::addMFacToPlot(double left_Low, double right_Hight, const QSt
// 在初始化代码中 // 在初始化代码中
TransparentDraggableMFac *dragRect = new TransparentDraggableMFac(this, strUuid); TransparentDraggableMFac *dragRect = new TransparentDraggableMFac(this, strUuid);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
//最小宽度 //最小宽度
@ -4801,7 +4837,7 @@ void QMyCustomPlot::addMFacToPlot(double left_Low, double right_Hight, const QSt
} }
//沉积相-亚相 //沉积相-亚相
void QMyCustomPlot::addPhaseToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor) void QMyCustomPlot::addPhaseToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4809,7 +4845,7 @@ void QMyCustomPlot::addPhaseToPlot(double left_Low, double right_Hight, const QS
// 在初始化代码中 // 在初始化代码中
TransparentDraggablePhase *dragRect = new TransparentDraggablePhase(this, strUuid); TransparentDraggablePhase *dragRect = new TransparentDraggablePhase(this, strUuid);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
//最小宽度 //最小宽度
@ -4820,7 +4856,7 @@ void QMyCustomPlot::addPhaseToPlot(double left_Low, double right_Hight, const QS
} }
//沉积相-相 //沉积相-相
void QMyCustomPlot::addFacToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor) void QMyCustomPlot::addFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh, QColor crColor)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4828,7 +4864,7 @@ void QMyCustomPlot::addFacToPlot(double left_Low, double right_Hight, const QStr
// 在初始化代码中 // 在初始化代码中
TransparentDraggableFac *dragRect = new TransparentDraggableFac(this, strUuid); TransparentDraggableFac *dragRect = new TransparentDraggableFac(this, strUuid);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(crColor); // 半透明白色 dragRect->setColor(crColor); // 半透明白色
//最小宽度 //最小宽度
@ -4839,7 +4875,7 @@ void QMyCustomPlot::addFacToPlot(double left_Low, double right_Hight, const QStr
} }
//套管 //套管
void QMyCustomPlot::addGuanToPlot(double left_Low, double right_Hight, const QString imagePath, float in) void QMyCustomPlot::addGuanToPlot(double left_Low, double right_Hight, const QString imagePath, float in, bool bRefresh)
{ {
QtCommonClass *qtCommon = new QtCommonClass(this); QtCommonClass *qtCommon = new QtCommonClass(this);
QString strUuid = qtCommon->getUUid(); QString strUuid = qtCommon->getUUid();
@ -4851,9 +4887,9 @@ void QMyCustomPlot::addGuanToPlot(double left_Low, double right_Hight, const QSt
//图片提前设值后面setRange改变 //图片提前设值后面setRange改变
dragRect->setResult(imagePath); dragRect->setResult(imagePath);
// 设置初始范围 // 设置初始范围
dragRect->setRange(left_Low, right_Hight); dragRect->setRange(left_Low, right_Hight, bRefresh);
// 可选:设置颜色 // 可选:设置颜色
dragRect->setColor(QColor(255, 255, 255, 80)); // 透明红色 dragRect->setColor(QColor(255, 255, 255, 0)); // 透明
//最小宽度 //最小宽度
dragRect->setMinWidth(0.1); dragRect->setMinWidth(0.1);
//dragRect->setTitle(strText); //dragRect->setTitle(strText);
@ -6272,9 +6308,10 @@ void QMyCustomPlot::s_changeFacShow(QString strUuid, QString strSlfName, QString
it++; it++;
//刷新 //刷新
QCPRange tmpRange = pDraggableRect->getRange(); QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper); pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
//pDraggableRect->setTitle(pDraggableRect->mstrTitle);
} }
//统一刷新
replot();
} }
} }
else if(propertyData == "绘制亚相") else if(propertyData == "绘制亚相")
@ -6291,9 +6328,10 @@ void QMyCustomPlot::s_changeFacShow(QString strUuid, QString strSlfName, QString
it++; it++;
//刷新 //刷新
QCPRange tmpRange = pDraggableRect->getRange(); QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper); pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
//pDraggableRect->setTitle(pDraggableRect->mstrTitle);
} }
//统一刷新
replot();
} }
} }
else if(propertyData == "微相名称") else if(propertyData == "微相名称")
@ -6309,9 +6347,10 @@ void QMyCustomPlot::s_changeFacShow(QString strUuid, QString strSlfName, QString
it++; it++;
//刷新 //刷新
QCPRange tmpRange = pDraggableRect->getRange(); QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper); pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
//pDraggableRect->setTitle(pDraggableRect->mstrTitle);
} }
//统一刷新
replot();
} }
} }
@ -6319,6 +6358,262 @@ void QMyCustomPlot::s_changeFacShow(QString strUuid, QString strSlfName, QString
//不清空属性窗口 //不清空属性窗口
} }
//绘制结构
void QMyCustomPlot::DrawStruct()
{
//先删除
if(mRect_Tubing)
{
removeItem(mRect_Tubing);
mRect_Tubing = nullptr;
}
if(mRect2_Tubing)
{
removeItem(mRect2_Tubing);
mRect2_Tubing = nullptr;
}
if(m_bDrawStruct_Tubing)
{
//绘制套管
float upper = this->xAxis->range().upper;
float lower = this->xAxis->range().lower;
double lY1 = this->yAxis->range().lower;
double lY2 = this->yAxis->range().upper;
// 创建矩形
mRect_Tubing = new QCPItemRect(this);
mRect_Tubing->setLayer("overlay"); // 确保在最上层
mRect_Tubing->setBrush(QBrush(QColor(0, 0, 0, 255)));
mRect_Tubing->setPen(QPen(QColor(0, 0, 0, 255)));
mRect_Tubing->topLeft->setCoords(lower, lY1 + (lY2-lY1-m_OutD_Tubing)/2.0);
mRect_Tubing->bottomRight->setCoords(upper, lY1 + (lY2-lY1-m_inD_Tubing)/2.0);
// 创建矩形
mRect2_Tubing = new QCPItemRect(this);
mRect2_Tubing->setLayer("overlay"); // 确保在最上层
mRect2_Tubing->setBrush(QBrush(QColor(0, 0, 0, 255)));
mRect2_Tubing->setPen(QPen(QColor(0, 0, 0, 255)));
mRect2_Tubing->topLeft->setCoords(lower, lY2 - (lY2-lY1-m_OutD_Tubing)/2.0);
mRect2_Tubing->bottomRight->setCoords(upper, lY2 - (lY2-lY1-m_inD_Tubing)/2.0);
}
}
//绘制管柱
void QMyCustomPlot::DrawTubing()
{
//先删除
if(mPixmap_Tubing)
{
removeItem(mPixmap_Tubing);
mPixmap_Tubing = nullptr;
}
if(m_bDrawTubing_Tubing)
{
QString shotimgfile=GetSymbolDir()+"\\管柱组件\\管柱.png";
double lY1 = this->yAxis->range().lower;//+10
double lY2 = this->yAxis->range().upper;
//
mPixmap_Tubing = new QCPItemPixmap(this);
//mPixmap->setPixmap(QPixmap(":/image/file.png")); // 设置图片
mPixmap_Tubing->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式
mPixmap_Tubing->setLayer("grid"); // 确保在最上层overlay
//
float upper = this->xAxis->range().upper;
mPixmap_Tubing->topLeft->setCoords(upper, lY1 + (lY2-lY1-m_Oguan_Tubing)/2.0);
mPixmap_Tubing->bottomRight->setCoords(-m_depth_Tubing, lY2 - (lY2-lY1-m_Oguan_Tubing)/2.0);
mPixmap_Tubing->setPixmap(QPixmap(shotimgfile)); // 设置图片
}
}
//改变沉积相属性,是否显示
void QMyCustomPlot::s_changeGuanShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow)
{
if(m_strUuid == strUuid &&
m_strSlfName == strSlfName &&
m_strWellName == strWellName &&
m_strTrackName == strTrackName &&
m_strLineName == strLineName)
{
}
else
{
return;
}
if(propertyData == "绘制结构")
{
m_bDrawStruct_Tubing = bShow;
//绘制结构
DrawStruct();
//刷新
replot();
}
else if(propertyData == "绘制管柱")
{
m_bDrawTubing_Tubing = bShow;
//绘制管柱
DrawTubing();
//刷新
replot();
}
else if(propertyData == "绘制工具")
{
m_bDrawTools_Tubing = bShow;
{
//
TransparentDraggableGuan *pDraggableRect =NULL;
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Guan.begin();
while( it != m_mapDraggable_Guan.end() )
{
pDraggableRect = (TransparentDraggableGuan*)it.value();
it++;
//刷新
QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
}
//统一刷新
replot();
}
}
else if(propertyData == "标注工具")
{
m_bDrawSPTool_Tubing = bShow;
{
//
TransparentDraggableGuan *pDraggableRect =NULL;
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Guan.begin();
while( it != m_mapDraggable_Guan.end() )
{
pDraggableRect = (TransparentDraggableGuan*)it.value();
it++;
//刷新
QCPRange tmpRange = pDraggableRect->getRange();
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
}
//统一刷新
replot();
}
}
else if(propertyData == "绘制接箍")
{
m_bDrawCCL_Tubing = bShow;
{
//
TransparentDraggableGuan *pDraggableRect =NULL;
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Guan.begin();
while( it != m_mapDraggable_Guan.end() )
{
pDraggableRect = (TransparentDraggableGuan*)it.value();
it++;
//刷新
QCPRange tmpRange = pDraggableRect->getRange();
if(m_bDrawCCL_Tubing)
{
pDraggableRect->mIn = m_inD_Tubing+1;
}
else
{
pDraggableRect->mIn = m_Oguan_Tubing+1;
}
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
}
//统一刷新
replot();
}
}
//不清空属性窗口
}
//改变沉积相属性,是否显示
void QMyCustomPlot::s_changeGuanD(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, double newD)
{
if(m_strUuid == strUuid &&
m_strSlfName == strSlfName &&
m_strWellName == strWellName &&
m_strTrackName == strTrackName &&
m_strLineName == strLineName)
{
}
else
{
return;
}
if(propertyData == "油管外径")
{
m_Oguan_Tubing = newD;
//绘制管柱
DrawTubing();
//
TransparentDraggableGuan *pDraggableRect =NULL;
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Guan.begin();
while( it != m_mapDraggable_Guan.end() )
{
pDraggableRect = (TransparentDraggableGuan*)it.value();
it++;
//刷新
QCPRange tmpRange = pDraggableRect->getRange();
if(m_bDrawCCL_Tubing)
{
pDraggableRect->mIn = m_inD_Tubing+1;
}
else
{
pDraggableRect->mIn = m_Oguan_Tubing+1;
}
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
}
//刷新
replot();
}
else if(propertyData == "套管内径")
{
m_inD_Tubing = newD;
//绘制结构
DrawStruct();
//
TransparentDraggableGuan *pDraggableRect =NULL;
QMap<QString,QObject *>::Iterator it = m_mapDraggable_Guan.begin();
while( it != m_mapDraggable_Guan.end() )
{
pDraggableRect = (TransparentDraggableGuan*)it.value();
it++;
//刷新
QCPRange tmpRange = pDraggableRect->getRange();
if(m_bDrawCCL_Tubing)
{
pDraggableRect->mIn = m_inD_Tubing+1;
}
else
{
pDraggableRect->mIn = m_Oguan_Tubing+1;
}
pDraggableRect->setRange(tmpRange.lower, tmpRange.upper, false);
}
//刷新
replot();
}
else if(propertyData == "套管外径")
{
m_OutD_Tubing = newD;
//绘制结构
DrawStruct();
//刷新
replot();
}
//不清空属性窗口
}
bool QMyCustomPlot::LoadFromSLF_Layer(QString strSlfName, QString strLineName) bool QMyCustomPlot::LoadFromSLF_Layer(QString strSlfName, QString strLineName)
{ {
LAYER_DATA m_Result; LAYER_DATA m_Result;
@ -6363,8 +6658,11 @@ bool QMyCustomPlot::LoadFromSLF_Layer(QString strSlfName, QString strLineName)
QColor bkColor = rgbList.at(j%ColorNum); QColor bkColor = rgbList.at(j%ColorNum);
//地质分层 //地质分层
this->addLayerToPlot(-edep, -sdep, QString::fromLocal8Bit(buf), bkColor); this->addLayerToPlot(-edep, -sdep, QString::fromLocal8Bit(buf), false, bkColor);
} }
//统一刷新
this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
} }
delete logio; delete logio;
@ -6429,8 +6727,11 @@ bool QMyCustomPlot::LoadFromSLF_Text(QString strSlfName, QString strLineName)
// wordfont.setPointSize(10); // wordfont.setPointSize(10);
//插入文本 //插入文本
this->addTextToPlot(-m_Result->EndDepth, -m_Result->StartDepth, QString::fromLocal8Bit(m_Result->Words)); this->addTextToPlot(-m_Result->EndDepth, -m_Result->StartDepth, QString::fromLocal8Bit(m_Result->Words), false);
} }
//统一刷新
this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
delete buf; delete buf;
} }
@ -6715,8 +7016,10 @@ bool QMyCustomPlot::LoadFromSLF_Jiegutext(QString strSlfName, QString csCurve, Q
} }
// //
this->addJiegutextToPlot(-bottom, -top, CoreValues, coredat); this->addJiegutextToPlot(-bottom, -top, CoreValues, coredat, false);
} }
//统一刷新
this->replot();
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
delete m_pResult; delete m_pResult;
} }
@ -7778,7 +8081,7 @@ void QMyCustomPlot::ReadData_Fac(QString strSlfName, QString csCurve, bool bAdd)
if(bAdd) if(bAdd)
{ {
//微相 //微相
this->addMFacToPlot(-frac.edep, -frac.sdep, QString::fromLocal8Bit(frac.mFac)); this->addMFacToPlot(-frac.edep, -frac.sdep, QString::fromLocal8Bit(frac.mFac), false);
} }
} }
mrw.CloseTable(iIndex); mrw.CloseTable(iIndex);
@ -7850,12 +8153,12 @@ void QMyCustomPlot::DrawFac(int iType)
if (iType==1) if (iType==1)
{ {
//相 //相
this->addFacToPlot(-bottom, -top, str1); this->addFacToPlot(-bottom, -top, str1, false);
} }
else else
{ {
//亚相 //亚相
this->addPhaseToPlot(-bottom, -top, str1); this->addPhaseToPlot(-bottom, -top, str1, false);
} }
//添加最后1个不同的item //添加最后1个不同的item
@ -7866,12 +8169,12 @@ void QMyCustomPlot::DrawFac(int iType)
if (iType==1) if (iType==1)
{ {
//相 //相
this->addFacToPlot(-bottom, -top, str1); this->addFacToPlot(-bottom, -top, str1, false);
} }
else else
{ {
//亚相 //亚相
this->addPhaseToPlot(-bottom, -top, str1); this->addPhaseToPlot(-bottom, -top, str1, false);
} }
} }
else else
@ -7881,12 +8184,12 @@ void QMyCustomPlot::DrawFac(int iType)
if (iType==1) if (iType==1)
{ {
//相 //相
this->addFacToPlot(-bottom, -top, str1); this->addFacToPlot(-bottom, -top, str1, false);
} }
else else
{ {
//亚相 //亚相
this->addPhaseToPlot(-bottom, -top, str1); this->addPhaseToPlot(-bottom, -top, str1, false);
} }
} }
} }
@ -7900,12 +8203,12 @@ void QMyCustomPlot::DrawFac(int iType)
if (iType==1) if (iType==1)
{ {
//相 //相
this->addFacToPlot(-bottom, -top, str1); this->addFacToPlot(-bottom, -top, str1, false);
} }
else else
{ {
//亚相 //亚相
this->addPhaseToPlot(-bottom, -top, str1); this->addPhaseToPlot(-bottom, -top, str1, false);
} }
top = pObj.sdep; top = pObj.sdep;
str1=str2; str1=str2;
@ -7962,6 +8265,7 @@ bool QMyCustomPlot::LoadFromSLF_Fac(QString strSlfName, QString csCurve, bool bA
DrawFac(1);//相 DrawFac(1);//相
DrawFac(2);//亚相 DrawFac(2);//亚相
//统一刷新
replot(); replot();
return true; return true;
} }
@ -8264,59 +8568,16 @@ bool QMyCustomPlot::LoadFromSLF_Tubing(QString strSlfName, QString csCurve)
Number == zoneOrder_Tubing.value("剌叭口").toInt()) Number == zoneOrder_Tubing.value("剌叭口").toInt())
{ {
bDrawGuanzhu = true;//画管柱 bDrawGuanzhu = true;//画管柱
m_depth_Tubing = depth;//管柱深度
QString shotimgfile=GetSymbolDir()+"\\管柱组件\\管柱.png"; //绘制管柱
//QImage shotimg(shotimgfile); DrawTubing();
//pPainter->drawImage(rect,shotimg);
double lY1 = this->yAxis->range().lower;//+10
double lY2 = this->yAxis->range().upper;
QCPItemPixmap *mPixmap;
mPixmap = new QCPItemPixmap(this);
//mPixmap->setPixmap(QPixmap(":/image/file.png")); // 设置图片
mPixmap->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式
mPixmap->setLayer("overlay"); // 确保在最上层
//
float upper = this->xAxis->range().upper;
mPixmap->topLeft->setCoords(upper, lY1 + (lY2-lY1-m_Oguan_Tubing)/2.0);
mPixmap->bottomRight->setCoords(-depth, lY2 - (lY2-lY1-m_Oguan_Tubing)/2.0);
mPixmap->setPixmap(QPixmap(shotimgfile)); // 设置图片
} }
} }
} }
//先删除 //绘制结构
if(mRect_Tubing) DrawStruct();
{
removeItem(mRect_Tubing);
mRect_Tubing = nullptr;
}
if(mRect2_Tubing)
{
removeItem(mRect2_Tubing);
mRect2_Tubing = nullptr;
}
//绘制套管
float upper = this->xAxis->range().upper;
float lower = this->xAxis->range().lower;
double lY1 = this->yAxis->range().lower;
double lY2 = this->yAxis->range().upper;
// 创建矩形
mRect_Tubing = new QCPItemRect(this);
mRect_Tubing->setLayer("overlay"); // 确保在最上层
mRect_Tubing->setBrush(QBrush(QColor(0, 0, 0, 255)));
mRect_Tubing->setPen(QPen(QColor(0, 0, 0, 255)));
mRect_Tubing->topLeft->setCoords(lower, lY1 + (lY2-lY1-m_OutD_Tubing)/2.0);
mRect_Tubing->bottomRight->setCoords(upper, lY1 + (lY2-lY1-m_Oind_Tubing)/2.0);
// 创建矩形
mRect2_Tubing = new QCPItemRect(this);
mRect2_Tubing->setLayer("overlay"); // 确保在最上层
mRect2_Tubing->setBrush(QBrush(QColor(0, 0, 0, 255)));
mRect2_Tubing->setPen(QPen(QColor(0, 0, 0, 255)));
mRect2_Tubing->topLeft->setCoords(lower, lY2 - (lY2-lY1-m_OutD_Tubing)/2.0);
mRect2_Tubing->bottomRight->setCoords(upper, lY2 - (lY2-lY1-m_Oind_Tubing)/2.0);
// //
logio->CloseTable(iIndex); logio->CloseTable(iIndex);
delete m_pResult; delete m_pResult;
@ -8329,6 +8590,9 @@ bool QMyCustomPlot::LoadFromSLF_Tubing(QString strSlfName, QString csCurve)
// //
drawOne_Tubing(result); drawOne_Tubing(result);
} }
//统一刷新
this->replot();
return true; return true;
} }
@ -8364,7 +8628,7 @@ void QMyCustomPlot::drawOne_Tubing(Slf_JIEGUPOS result)
} }
else else
{ {
in=m_Oguan_Tubing+1; in=m_inD_Tubing+1;
} }
QString name; QString name;
@ -8383,7 +8647,7 @@ void QMyCustomPlot::drawOne_Tubing(Slf_JIEGUPOS result)
float lower = this->xAxis->coordToPixel(-depth)+h/2.0; float lower = this->xAxis->coordToPixel(-depth)+h/2.0;
float newUpper = this->xAxis->pixelToCoord(upper); float newUpper = this->xAxis->pixelToCoord(upper);
float newLower = this->xAxis->pixelToCoord(lower); float newLower = this->xAxis->pixelToCoord(lower);
this->addGuanToPlot(newLower, newUpper, cclimgfile, in); this->addGuanToPlot(newLower, newUpper, cclimgfile, in, false);
} }
bool QMyCustomPlot::SaveToSLF_Tubing() bool QMyCustomPlot::SaveToSLF_Tubing()

View File

@ -271,21 +271,30 @@ public:
void SaveToSLF_Fac(); void SaveToSLF_Fac();
//套管組件 //套管組件
bool m_bDrawStruct_Tubing = true; //绘制结构
bool m_bDrawTubing_Tubing = true; //绘制管柱
bool m_bDrawTools_Tubing = true; //绘制工具
bool m_bDrawSPTool_Tubing = true; //标注工具
bool m_bDrawCCL_Tubing = false; //绘制接箍
float m_Oguan_Tubing = 63.5; //油管外径
float m_inD_Tubing = 121.36; //套管内径
float m_OutD_Tubing = 139.7; //套管外径
//
QMap<QString,QString> zoneOrder_Tubing; QMap<QString,QString> zoneOrder_Tubing;
float m_Oguan_Tubing = 63.5;//油管外径
float m_Oind_Tubing = 121.36;//套管内径
float m_OutD_Tubing = 139.7; //套管外径
bool m_bDrawCCL_Tubing = false;
QString cclimgpath_Tubing=""; QString cclimgpath_Tubing="";
QList<Slf_JIEGUPOS> m_pResultList_Tubing; QList<Slf_JIEGUPOS> m_pResultList_Tubing;
QString m_strAddTubing=""; QString m_strAddTubing="";
QCPItemRect *mRect_Tubing=nullptr; QCPItemRect *mRect_Tubing=nullptr; //套管左侧图像
QCPItemRect *mRect2_Tubing=nullptr; QCPItemRect *mRect2_Tubing=nullptr; //套管右侧图像
QCPItemPixmap *mPixmap_Tubing=nullptr; //管柱图像
double m_depth_Tubing = 0; //管柱深度
bool LoadFromSLF_Tubing(QString strSlfName, QString csCurve); bool LoadFromSLF_Tubing(QString strSlfName, QString csCurve);
void drawOne_Tubing(Slf_JIEGUPOS result); void drawOne_Tubing(Slf_JIEGUPOS result);
bool SaveToSLF_Tubing(); bool SaveToSLF_Tubing();
//绘制结构
void DrawStruct();
//绘制管柱
void DrawTubing();
public slots: public slots:
void slot_time(); void slot_time();
@ -304,10 +313,10 @@ public:
double newLeftScale, double newRightScale, QString strScaleType, QColor &newlineColor, double width, Qt::PenStyle lineStyle); double newLeftScale, double newRightScale, QString strScaleType, QColor &newlineColor, double width, Qt::PenStyle lineStyle);
//文字结论 //文字结论
void addTextToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addTextToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//地质分层 //地质分层
void addLayerToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addLayerToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//解释结论 //解释结论
TransparentGroupResult* addResultGroup(double left_Low, double right_Hight, QString &strUuid, QString strText = ""); TransparentGroupResult* addResultGroup(double left_Low, double right_Hight, QString &strUuid, QString strText = "");
@ -317,22 +326,22 @@ public:
void addGeoLithToPlot(double left_Low, double right_Hight, const QString myLith, const QString myOil, const QString myColor, bool bRefresh=true); void addGeoLithToPlot(double left_Low, double right_Hight, const QString myLith, const QString myOil, const QString myColor, bool bRefresh=true);
//井壁取心 //井壁取心
void addSwallCoreToPlot(double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor); void addSwallCoreToPlot(double Depth, QString LithologyImage, QString OilGasImage, QString ColorImage, double Sideleft, double width, int iColor, bool bRefresh=true);
//固井结论 //固井结论
void addGujingToPlot(double left_Low, double right_Hight, const QString strResult); void addGujingToPlot(double left_Low, double right_Hight, const QString strResult, bool bRefresh=true);
//气测/FMT/射孔/文本 //气测/FMT/射孔/文本
void addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, const QStringList strList_coredat, QColor crColor=QColor(255, 255, 255, 80)); void addJiegutextToPlot(double left_Low, double right_Hight, const QStringList strText, const QStringList strList_coredat, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//沉积相 //沉积相
void addMFacToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addMFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
void addPhaseToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addPhaseToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
void addFacToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addFacToPlot(double left_Low, double right_Hight, const QString strText, bool bRefresh=true, QColor crColor=QColor(255, 255, 255, 80));
//套管组件 //套管组件
void addGuanToPlot(double left_Low, double right_Hight, const QString imagePath, float in); void addGuanToPlot(double left_Low, double right_Hight, const QString imagePath, float in, bool bRefresh=true);
//
void addLineToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80)); void addLineToPlot(double left_Low, double right_Hight, const QString strText, QColor crColor=QColor(255, 255, 255, 80));
//框选并编辑曲线 //框选并编辑曲线
@ -522,6 +531,12 @@ public slots:
//改变沉积相属性,是否显示 //改变沉积相属性,是否显示
void s_changeFacShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow); void s_changeFacShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
//改变套管组件属性,是否显示
void s_changeGuanShow(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, bool bShow);
//改变套管组件属性,直径
void s_changeGuanD(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString propertyData, double newD);
public: public:
//蝌蚪图重绘网格线 //蝌蚪图重绘网格线
bool mKedou = false; bool mKedou = false;

View File

@ -90,11 +90,22 @@ void TransparentDraggableGuan::setOin(float in)
// //mPlot->replot(); // //mPlot->replot();
//} //}
//设置解释结论 //设置套管组件
void TransparentDraggableGuan::setResult(QString filePath) void TransparentDraggableGuan::setResult(QString filePath)
{ {
m_Result = filePath; m_Result = filePath;
mPixmap->setPixmap(QPixmap(filePath)); // 设置图片 mPixmap->setPixmap(QPixmap(filePath)); // 设置图片
//
//
QString name,itemName;
this->m_Result.replace("\\","/");
int l=this->m_Result.lastIndexOf("/");
if(l>-1) name=this->m_Result.mid(l+1);
l=name.indexOf(".");
name=name.left(l);
itemName=name;
mstrTitle = itemName;
mItemTitle->setText(mstrTitle);
} }
void TransparentDraggableGuan::drawResult(double left_Low, double right_Hight, double lY1, double lY2) void TransparentDraggableGuan::drawResult(double left_Low, double right_Hight, double lY1, double lY2)
@ -176,31 +187,61 @@ void TransparentDraggableGuan::drawResult(double left_Low, double right_Hight, d
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableGuan::setRange(double left_Low, double right_Hight) void TransparentDraggableGuan::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
//套管组件高度
mH = right_Hight-left_Low;
double lY1 = mPlot->yAxis->range().lower;//+10 double lY1 = mPlot->yAxis->range().lower;//+10
double lY2 = mPlot->yAxis->range().upper; double lY2 = mPlot->yAxis->range().upper;
mRect->topLeft->setCoords(left_Low, lY1 + (lY2-lY1-mIn)/2.0); mRect->topLeft->setCoords(left_Low, lY1 + (lY2-lY1-mIn)/2.0);
mRect->bottomRight->setCoords(right_Hight, lY2 - (lY2-lY1-mIn)/2.0); mRect->bottomRight->setCoords(right_Hight, lY2 - (lY2-lY1-mIn)/2.0);
//绘制工具
if(mPlot->m_bDrawTools_Tubing)
{
//位置与rect不一样否则图像反转
mPixmap->topLeft->setCoords(right_Hight, lY1 + (lY2-lY1-mIn)/2.0);
mPixmap->bottomRight->setCoords(left_Low, lY2 - (lY2-lY1-mIn)/2.0);
}
else
{
//位置与rect不一样否则图像反转
mPixmap->topLeft->setCoords(0, 0);
mPixmap->bottomRight->setCoords(0, 0);
}
//位置与rect不一样否则图像反转 //标注工具
mPixmap->topLeft->setCoords(right_Hight, lY1 + (lY2-lY1-mIn)/2.0); if(mPlot->m_bDrawSPTool_Tubing)
mPixmap->bottomRight->setCoords(left_Low, lY2 - (lY2-lY1-mIn)/2.0); {
//drawResult(left_Low, right_Hight, lY1, lY2); mItemTitle->setText(mstrTitle);
}
else
{
mItemTitle->setText("");
}
//mItemTitle->position->setCoords(0.5, 0.5); //
// 设置父锚点,定位点 mstrTitle2 = QString::number(-(right_Hight+left_Low)/2.0);
//mItemTitle->position->setParentAnchor(mRect->bottom); mItemTitle2->setText(mstrTitle2);
// mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
// (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper); //
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower); float fSpace = (lY2 - lY1)/(float)5;
float flNewPos = mPlot->xAxis->coordToPixel((left_Low + right_Hight)/2.0) - 15;
mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
3*fSpace); // 设置文本在矩形中心位置
//
mItemTitle2->position->setCoords(mPlot->xAxis->pixelToCoord(flNewPos),
4*fSpace + 0.5*fSpace); // 设置文本在矩形中心位置
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围
@ -233,7 +274,8 @@ void TransparentDraggableGuan::deleteRect()
// mPlot->removeItem(mLeftHandle); // mPlot->removeItem(mLeftHandle);
// mPlot->removeItem(mRightHandle); // mPlot->removeItem(mRightHandle);
mPlot->removeItem(mPixmap); mPlot->removeItem(mPixmap);
// mPlot->removeItem(mItemTitle); mPlot->removeItem(mItemTitle);
mPlot->removeItem(mItemTitle2);
//mPlot->replot(); //mPlot->replot();
this->deleteLater(); this->deleteLater();
@ -287,8 +329,8 @@ void TransparentDraggableGuan::initRect()
// 创建透明矩形 // 创建透明矩形
mRect = new QCPItemRect(mPlot); mRect = new QCPItemRect(mPlot);
mRect->setLayer("overlay"); // 确保在最上层 mRect->setLayer("overlay"); // 确保在最上层
mRect->setBrush(QBrush(QColor(255, 255, 255, 50))); // 透明蓝色 mRect->setBrush(QBrush(QColor(255, 255, 255, 0))); // 透明
mRect->setPen(QPen(QColor(70, 70, 255, 200))); mRect->setPen(QPen(QColor(70, 70, 255, 0)));// 透明
// // 创建左右边界控制点 // // 创建左右边界控制点
// mLeftHandle = new QCPItemRect(mPlot); // mLeftHandle = new QCPItemRect(mPlot);
@ -315,16 +357,29 @@ void TransparentDraggableGuan::initRect()
mPixmap->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式 mPixmap->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式
mPixmap->setLayer("overlay"); // 确保在最上层 mPixmap->setLayer("overlay"); // 确保在最上层
// mItemTitle = new QCPItemText(mPlot); mItemTitle = new QCPItemText(mPlot);
// mItemTitle->setText(mstrTitle); mItemTitle->setText(mstrTitle);
// //mItemTitle->setBrush(QBrush(Qt::red)); //mItemTitle->setBrush(QBrush(Qt::red));
// mItemTitle->setFont(QFont("Arial", 12, QFont::Bold)); mItemTitle->setFont(QFont("Arial", 12, QFont::Bold));
// mItemTitle->setColor(Qt::black); mItemTitle->setColor(Qt::black);
// mItemTitle->setPositionAlignment(Qt::AlignTop | Qt::AlignHCenter); mItemTitle->setPositionAlignment(Qt::AlignTop | Qt::AlignHCenter);
// mItemTitle->position->setType(QCPItemPosition::ptPlotCoords); mItemTitle->position->setType(QCPItemPosition::ptPlotCoords);
// //mItemTitle->position->setType(QCPItemPosition::ptAxisRectRatio); //mItemTitle->position->setType(QCPItemPosition::ptAxisRectRatio);
// mItemTitle->position->setCoords(0.5, 0); mItemTitle->position->setCoords(0.5, 0);
// mItemTitle->setLayer("overlay"); mItemTitle->setLayer("overlay");
mItemTitle->setRotation(90);//竖直文字
//
mItemTitle2 = new QCPItemText(mPlot);
mItemTitle2->setText(mstrTitle2);
//mItemTitle2->setBrush(QBrush(Qt::red));
mItemTitle2->setFont(QFont("Arial", 12, QFont::Bold));
mItemTitle2->setColor(Qt::black);
mItemTitle2->setPositionAlignment(Qt::AlignTop | Qt::AlignHCenter);
mItemTitle2->position->setType(QCPItemPosition::ptPlotCoords);
//mItemTitle2->position->setType(QCPItemPosition::ptAxisRectRatio);
mItemTitle2->position->setCoords(0.5, 0);
mItemTitle2->setLayer("overlay");
mItemTitle2->setRotation(90);//竖直文字
} }
void TransparentDraggableGuan::updateHandles() void TransparentDraggableGuan::updateHandles()
@ -379,9 +434,9 @@ void TransparentDraggableGuan::onMousePress(QMouseEvent *event)
//event->accept(); //event->accept();
// double low = mRect->topLeft->coords().x(); double low = mRect->topLeft->coords().x();
// double hight = mRect->bottomRight->coords().x(); double hight = mRect->bottomRight->coords().x();
// PropertyService()->initTubingItemProperty(this, low, hight, m_Result); PropertyService()->initTubingItemProperty(this, low, hight, m_Result);
QMenu menu(nullptr); QMenu menu(nullptr);
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除选中对象", this, &TransparentDraggableGuan::onDelRect); menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除选中对象", this, &TransparentDraggableGuan::onDelRect);
@ -557,9 +612,9 @@ void TransparentDraggableGuan::onMouseRelease(QMouseEvent *event)
event->accept(); event->accept();
//属性 //属性
{ {
// double low = mRect->topLeft->coords().x(); double low = mRect->topLeft->coords().x();
// double hight = mRect->bottomRight->coords().x(); double hight = mRect->bottomRight->coords().x();
// PropertyService()->initGujingItemProperty(this, low, hight, m_Result); PropertyService()->initTubingItemProperty(this, low, hight, m_Result);
if(m_bChange) if(m_bChange)
{ {
//保存 //保存

View File

@ -37,7 +37,7 @@ public:
void drawResult(double left_Low, double right_Hight, double lY1, double lY2); void drawResult(double left_Low, double right_Hight, double lY1, double lY2);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();
@ -70,8 +70,10 @@ public:
// QCPItemRect *mRightHandle; // QCPItemRect *mRightHandle;
QCPItemPixmap *mPixmap; QCPItemPixmap *mPixmap;
// QCPItemText *mItemTitle; QCPItemText *mItemTitle;
// QString mstrTitle=""; QString mstrTitle="";
QCPItemText *mItemTitle2;
QString mstrTitle2="";
QString m_strUuid = ""; QString m_strUuid = "";
QString m_Result; QString m_Result;
@ -83,7 +85,10 @@ public:
// 添加最小宽度成员变量 // 添加最小宽度成员变量
double mMinWidth; double mMinWidth;
float mIn=123; //套管组件外径
float mIn = 123;
//套管组件高度
double mH = 0;
//鼠标形状 //鼠标形状
bool m_bArrow = false; bool m_bArrow = false;

View File

@ -103,7 +103,7 @@ void TransparentDraggableRightList::setRightList(QList<double> new_DepthList, QL
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableRightList::setRange(double left_Low, double right_Hight) void TransparentDraggableRightList::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -118,7 +118,11 @@ void TransparentDraggableRightList::setRange(double left_Low, double right_Hight
double delta = (right_Hight - left_Low) / (double)(m_left_Low_Number-m_right_Hight_Number-1); double delta = (right_Hight - left_Low) / (double)(m_left_Low_Number-m_right_Hight_Number-1);
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -33,7 +33,7 @@ public:
void setRightList(QList<double> new_DepthList, QList<double> new_ValueList); void setRightList(QList<double> new_DepthList, QList<double> new_ValueList);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -106,7 +106,7 @@ void TransparentDraggableSelectRect::setNumber(int left_Low_Number, int right_Hi
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableSelectRect::setRange(double left_Low, double right_Hight) void TransparentDraggableSelectRect::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -130,7 +130,11 @@ void TransparentDraggableSelectRect::setRange(double left_Low, double right_High
} }
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -33,7 +33,7 @@ public:
void setNumber(int left_Low_Number, int right_Hight_Number); void setNumber(int left_Low_Number, int right_Hight_Number);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();

View File

@ -171,7 +171,7 @@ void TransparentDraggableImage::drawResult(double left_Low, double right_Hight,
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableImage::setRange(double left_Low, double right_Hight) void TransparentDraggableImage::setRange(double left_Low, double right_Hight, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
@ -190,14 +190,9 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight)
mPixmap->bottomRight->setCoords(left_Low, lY2); mPixmap->bottomRight->setCoords(left_Low, lY2);
drawResult(left_Low, right_Hight, lY1, lY2); drawResult(left_Low, right_Hight, lY1, lY2);
//mItemTitle->position->setCoords(0.5, 0.5);
// 设置父锚点,定位点
//mItemTitle->position->setParentAnchor(mRect->bottom);
mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2, mItemTitle->position->setCoords((mRect->topLeft->coords().x() + mRect->bottomRight->coords().x())/2,
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置 (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
//mRect->topLeft->setCoords(left, mPlot->yAxis->range().upper);
//mRect->bottomRight->setCoords(right, mPlot->yAxis->range().lower);
if(m_BorderColor == nullptr){ if(m_BorderColor == nullptr){
this->m_BorderColor = QColor(0, 0, 0, 200); // 边框颜色 this->m_BorderColor = QColor(0, 0, 0, 200); // 边框颜色
@ -206,12 +201,17 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight)
} }
// 应用边框样式到主矩形 // 应用边框样式到主矩形
mRect->setPen(QPen(m_BorderColor, m_BorderWidth, m_BorderStyle)); mRect->setPen(QPen(m_BorderColor, m_BorderWidth, m_BorderStyle));
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 设置矩形范围 // 设置矩形范围
void TransparentDraggableImage::setRange(double left_Low, double right_Hight,double leftPercentage, double widthPercentage, int flag) void TransparentDraggableImage::setRange(double left_Low, double right_Hight,double leftPercentage, double widthPercentage, int flag, bool bReplot)
{ {
if(left_Low >= right_Hight) return; if(left_Low >= right_Hight) return;
// qDebug() << "left_Low" << left_Low << // qDebug() << "left_Low" << left_Low <<
@ -252,8 +252,13 @@ void TransparentDraggableImage::setRange(double left_Low, double right_Hight,dou
(mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置 (mRect->topLeft->coords().y() + mRect->bottomRight->coords().y())/2); // 设置文本在矩形中心位置
mRect->setPen(QPen(m_BorderColor, m_BorderWidth, m_BorderStyle)); mRect->setPen(QPen(m_BorderColor, m_BorderWidth, m_BorderStyle));
updateHandles(); updateHandles();
mPlot->replot(); //刷新,针对批量修改不在此处刷新,后面统一刷新
if(bReplot)
{
mPlot->replot();
}
} }
// 获取当前范围 // 获取当前范围

View File

@ -37,9 +37,9 @@ public:
void drawResult(double left_Low, double right_Hight, double lY1, double lY2); void drawResult(double left_Low, double right_Hight, double lY1, double lY2);
// 设置矩形范围 // 设置矩形范围
void setRange(double left_Low, double right_Hight); void setRange(double left_Low, double right_Hight, bool bReplot=true);
// flag=0边距修改 1宽度修改 // flag=0边距修改 1宽度修改
void setRange(double left_Low, double right_Hight,double left, double width, int flag = 0); void setRange(double left_Low, double right_Hight,double left, double width, int flag = 0, bool bReplot=true);
// 获取当前范围 // 获取当前范围
QCPRange getRange(); QCPRange getRange();
QString getMResult(); QString getMResult();