井次刷新功能优化,追加裂缝等刷新处理

This commit is contained in:
jiayulong 2026-07-01 17:49:56 +08:00
parent 839154cb51
commit adc4e3c131
6 changed files with 125 additions and 15 deletions

View File

@ -1328,3 +1328,38 @@ bool CPickFrac::setBlackColor(bool bbk)
return true;
}
//刷新
void CPickFrac::RefreshItems()
{
//qDeleteAll(m_items);//会崩
// 如果没有裂缝,清空表记录
if (m_items.isEmpty()) {
}
else
{
for (DraggableCrackItem* item : m_items)
{
if (!item) continue;
//
if (m_items.removeOne(item)) {
// 立即从画布移除所有图形项
item->cleanupFromPlot();
// 失活并清空静态指针
if (DraggableCrackItem::getActiveItem() == item) {
item->deactivate();
}
// 断开信号
disconnect(item, nullptr, this, nullptr);
// 直接删除,不再延迟
delete item;
}
}
}
ReadData(m_currentSlfName, m_currentTableName);
// 强制重绘
if(m_myCustomPlot)
{
m_myCustomPlot->replot();
}
}

View File

@ -79,6 +79,8 @@ public:
void ReadData(QString strSlfName, QString csCurve);
void drawOne(FRAC_TABLE_Crack frac, int iType, int nLineWidth, QColor crColor, QString csName);
//刷新
void RefreshItems();
protected:
bool eventFilter(QObject *watched, QEvent *event) override;

View File

@ -4673,7 +4673,7 @@ void PropertyWidget::changedDepthProperty(QString strProperty, QVariant varVal)
void PropertyWidget::initCrackProperty(FormInfo *formInfo)
{
_CreateVariantPropertyItem("数据", "井文件", formInfo->m_strSlfName, QVariant::String);
_CreateVariantPropertyItem("数据", "井文件", formInfo->m_strLineName + "@" + formInfo->m_strSlfName, QVariant::String);
_CreateVariantPropertyItem("数据", "显示名称", formInfo->m_strAliasName, QVariant::String);
_CreateVariantPropertyItem("数据", "井眼直径", formInfo->m_crack_boreholeDiameter, QVariant::Double);
QStringList listType;

View File

@ -5602,7 +5602,7 @@ void FormDraw::initJykt(QMyCustomPlot *widget, QString strSlfName, QString strLi
//道-对象
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "JyktObject", listOtherProperty);
//杆状
//井眼垮塌矢量
widget->Draw_Jykt();
}
@ -5658,7 +5658,7 @@ void FormDraw::initDenv(QMyCustomPlot *widget, QString strSlfName, QString strLi
//道-对象
FormInfo* pInfo = m_formTrack->AddKedouAndOthers(strSlfName, m_strWellName, m_strTrackName, strLineName, strAliasName, strUnit, newlineColor, width, m_RightVal, m_LeftVal, strScaleType, "DenvObject", listOtherProperty);
//杆状
//井斜方位
widget->Draw_Denv();
}

View File

@ -3152,6 +3152,14 @@ void FormInfo::contextMenuEvent(QContextMenuEvent *event)
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteWave);
menu.exec(event->globalPos());
}
else if(m_strType=="CrackObject")
{
//裂缝
QMenu menu(this);
menu.addAction(QIcon(::GetImagePath() + "icon/Sheet.png"), "数据对象查看", this, &FormInfo::onShowTable);
menu.addAction(QIcon(::GetImagePath() + "icon/Delete.png"), "删除当前对象", this, &FormInfo::onDeleteTable);
menu.exec(event->globalPos());
}
}
//曲线数据查看

View File

@ -221,7 +221,7 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
connect(CallManage::getInstance(), SIGNAL(sig_changeDepthProperty(QVariantList)), this, SLOT(s_changeDepthProperty(QVariantList)));
// 频率统计图属性修改
// 裂缝属性修改
connect(CallManage::getInstance(), SIGNAL(sig_changeCrackProperty(QString)), this, SLOT(s_changeCrackProperty(QString)));
// 频率统计图属性修改
@ -5310,6 +5310,17 @@ void QMyCustomPlot::s_Refresh_All(QString strUuid, QString strSlfName, QString s
return;
}
if(m_strType == "")
{
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
if (pInfo == NULL)
{
return;
}
m_strType = pInfo->m_strType;
}
//曲线
if(m_addRandomGraph && m_strLineName != "CORE_PHYSICS")
{
@ -5351,37 +5362,90 @@ void QMyCustomPlot::s_Refresh_All(QString strUuid, QString strSlfName, QString s
// 岩心分析
refreshCorePhysics();
}
//
FormInfo* pInfo = m_formTrack->getFormInfoByParameters(m_strUuid, m_strWellName, m_strTrackName, m_strLineName);
if (pInfo == NULL)
else if (m_strLineName == "FRAC_HOLE.TABLE")
{
return;
// 蝌蚪图
if (m_strType == "tableObject")
{
//绘制蝌蚪图
Draw_Kedou();
}
}
QString strType = pInfo->m_strType;
if (strType == "JiegutextObject")
if (m_strType == "JiegutextObject")
{
//气测/FMT/射孔/文本
RefreshItems_Jiegutext();
}
else if (strType == "gujingObject")
else if (m_strType == "gujingObject")
{
//固井
RefreshItems_Gujing();
}
else if (strType == "LogfaceObject")
else if (m_strType == "LogfaceObject")
{
//沉积相
RefreshItems_Fac(true); //刷新数据
}
else if (strType == "TubingstringObject")
else if (m_strType == "TubingstringObject")
{
//套管组件
RefreshItems_Tubing();
}
else if (strType == "CrackObject")
else if (m_strType == "CrackObject")
{
// 裂缝
m_cPickFrac->RefreshItems();
}
else if (m_strType == "ganzhuangtuObject")
{
// 杆状图
//绘制杆状图
Draw_Ganzhuang();
}
else if (m_strType == "JyktObject")
{
// 井眼垮塌矢量图
//绘制井眼垮塌矢量图
Draw_Jykt();
}
else if (m_strType == "DenvObject")
{
// 井斜方位图
//绘制井斜方位图
Draw_Denv();
}
else if (m_strType == "SantuyibiaoObject")
{
// 斜井三图一表属性
}
else if (m_strType == "plObject")
{
// 频率统计图
}
else if (m_strType == "roseObject")
{
// 玫瑰图
}
else if (m_strType == "dcaObject")
{
// 裂缝DCA分析
}
else if (m_strType == "MCalsObject")
{
// 多臂井径属性
//多臂井径
Draw_MCals(m_strLineName, m_strLineName);
}
else if ("waveObject" == m_strType)
{
//波列
}
else if ("DrawImageObject" == m_strType)
{
//图像
}
}
@ -11193,6 +11257,7 @@ void QMyCustomPlot::resetPosition()
replot();
}
//裂缝
void QMyCustomPlot::s_changeCrackProperty(QString strObjUuid)
{
if (m_strObjUuid != strObjUuid)