diff --git a/CallManage/CallManage.h b/CallManage/CallManage.h index 27f2dd6..f85fdff 100644 --- a/CallManage/CallManage.h +++ b/CallManage/CallManage.h @@ -108,6 +108,8 @@ signals: void sig_ChangeRightScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newRightScale); //刻度类型 void sig_ChangeScaleType(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strScaleType); + //左右跨道 + void sig_ChangeCross(QString strUuid, QString strTrackUuid); //线颜色 void sig_ChangeLineColor(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor); @@ -116,6 +118,8 @@ signals: //线型 void sig_ChangeLineStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, Qt::PenStyle lineStyle); + void sig_ReplotFinished(QString strUuid); + //绘制方式 //曲线 void sig_ChangeDrawLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawLine); diff --git a/logPlus/PropertyWidget.cpp b/logPlus/PropertyWidget.cpp index 8098183..2c01a2c 100644 --- a/logPlus/PropertyWidget.cpp +++ b/logPlus/PropertyWidget.cpp @@ -81,6 +81,7 @@ void PropertyWidget::InitCurrentViewInfo(bool bAll) m_tdGujing = NULL; // m_strUuid = ""; + m_strTrackUuid = ""; m_strSlfName = ""; m_strWellName = ""; m_strTrackName = ""; @@ -414,7 +415,9 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant if(m_strCurrentProperty == Curve_Property) { double newLeftScale = variant.value(); + m_formInfo->m_vmin = newLeftScale; emit CallManage::getInstance()->sig_ChangeLeftScale(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, m_strLineName, newLeftScale); + emit CallManage::getInstance()->sig_ChangeCross(m_strUuid, m_strTrackUuid); //更新填充 ChangFillProperty(); } @@ -426,7 +429,9 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant if(m_strCurrentProperty == Curve_Property) { double newRightScale = variant.value(); + 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_ChangeCross(m_strUuid, m_strTrackUuid); //更新填充 ChangFillProperty(); } @@ -439,10 +444,27 @@ void PropertyWidget::SlotPropertyChanged( QtProperty *pProperty, const QVariant { QString newScaleType = pProperty->valueText(); emit CallManage::getInstance()->sig_ChangeScaleType(m_strUuid, m_strSlfName, m_strWellName, m_strTrackName, m_strLineName, newScaleType); + //更新填充 ChangFillProperty(); } } + else if ("左跨道个数" == m_propertyData[pProperty]) + { + if (m_strCurrentProperty == Curve_Property) + { + m_formInfo->m_nLeftCross = variant.toInt(); + emit CallManage::getInstance()->sig_ChangeCross(m_strUuid, m_strTrackUuid); + } + } + else if ("右跨道个数" == m_propertyData[pProperty]) + { + if (m_strCurrentProperty == Curve_Property) + { + m_formInfo->m_nRightCross = variant.toInt(); + emit CallManage::getInstance()->sig_ChangeCross(m_strUuid, m_strTrackUuid); + } + } else if("颜色" == m_propertyData[pProperty]) { //qDebug() << "颜色->改变"; @@ -1170,6 +1192,7 @@ void PropertyWidget::initCurveProperty(FormInfo *formInfo, QStringList strListOt //初始化,清空 InitCurrentViewInfo(); m_strUuid = formInfo->m_strUuid; + m_strTrackUuid = formInfo->m_strTrackUuid; m_formInfo = formInfo; // @@ -1230,6 +1253,8 @@ void PropertyWidget::initCurveProperty(FormInfo *formInfo, QStringList strListOt _CreateVariantPropertyItem("刻度设置", "左刻度", formInfo->m_vmin, QVariant::Double); _CreateVariantPropertyItem("刻度设置", "右刻度", formInfo->m_vmax, QVariant::Double); _CreateEnumPropertyItem("刻度设置", "刻度类型", listScaleType.indexOf(formInfo->m_strScaleType), listScaleType); + _CreateVariantPropertyItem("刻度设置", "左跨道个数", formInfo->m_nLeftCross, QVariant::Int); + _CreateVariantPropertyItem("刻度设置", "右跨道个数", formInfo->m_nRightCross, QVariant::Int); // _CreateVariantPropertyItem("曲线线型", "线宽", formInfo->m_dWidth, QVariant::Double, 1, 20); _CreateVariantPropertyItem("曲线线型", "颜色", formInfo->m_lineColor, QVariant::Color); @@ -1361,7 +1386,7 @@ void PropertyWidget::initProperty(FormInfo *formInfo) m_formInfo = formInfo; m_strUuid = formInfo->m_strUuid; - + m_strTrackUuid = formInfo->m_strTrackUuid; // m_strSlfName = formInfo->m_strSlfName; m_strWellName = formInfo->m_strWellName; diff --git a/logPlus/PropertyWidget.h b/logPlus/PropertyWidget.h index f44446d..cf32c76 100644 --- a/logPlus/PropertyWidget.h +++ b/logPlus/PropertyWidget.h @@ -56,6 +56,7 @@ private: public: QString m_strUuid; + QString m_strTrackUuid; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index e7feb49..d4aacf8 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -219,6 +219,10 @@ void FormDraw::setDrawData(QStringList listdt, QJsonObject objInfo) connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); + QTimer::singleShot(100, this, [=]() { + emit CallManage::getInstance()->sig_ReplotFinished(m_strUuid); + }); + // m_listLineName.push_back(strLineName); } @@ -736,24 +740,79 @@ void FormDraw::DisplayType_One(QJsonObject objInfo) } +void FormDraw::crossTrackSetting() +{ + if (m_formTrack == NULL || m_vecCurv.size() <= 0) + return; + + int nleft = 0; // 最大左跨道 + int nright = 0; // 最大右跨道 + int nSingleW = m_formTrack->width(); + QRect rt = m_formTrack->geometry(); + for (int i = 0; i < m_vecCurv.size(); i++) + { + QMyCustomPlot *pCurvPlot = m_vecCurv.at(i); + if (!pCurvPlot) + continue; + + FormInfo* pInfo = m_formTrack->getFormInfoByParameters(pCurvPlot->m_strUuid, pCurvPlot->m_strWellName, + pCurvPlot->m_strTrackName, pCurvPlot->m_strLineName); + if (pInfo == NULL) + continue; + + if (pInfo->m_nLeftCross > nleft) + nleft = pInfo->m_nLeftCross; + + if (pInfo->m_nRightCross > nright) + nright = pInfo->m_nRightCross; + + } + + for (int i = 0; i < m_vecCurv.size(); i++) + { + QMyCustomPlot *pCurvPlot = m_vecCurv.at(i); + if (!pCurvPlot) + continue; + + FormInfo* pInfo = m_formTrack->getFormInfoByParameters(pCurvPlot->m_strUuid, pCurvPlot->m_strWellName, + pCurvPlot->m_strTrackName, pCurvPlot->m_strLineName); + if (pInfo == NULL) + continue; + + pCurvPlot->m_iX1 = pInfo->m_vmin; + pCurvPlot->m_iX2 = pInfo->m_vmax; + pCurvPlot->m_nLeftCross = pInfo->m_nLeftCross; + pCurvPlot->m_nRightCross = pInfo->m_nRightCross; + + QCPRange yRange;// = pCurvPlot->yAxis->range(); + double rg = pCurvPlot->m_iX2 - pCurvPlot->m_iX1; + yRange.lower = pCurvPlot->m_iX1 - rg * nleft; + yRange.upper = pCurvPlot->m_iX2 + rg * nright; + + pCurvPlot->yAxis->setRange(yRange); + int nnw = (nleft + nright + 1) * nSingleW; + QRect plotRt = pCurvPlot->geometry(); + plotRt.setWidth(nnw); + pCurvPlot->setGeometry(plotRt); + pCurvPlot->replot(); + } + + QRect selfRt = this->geometry(); + selfRt.setX(rt.x() - (nleft * nSingleW)); + selfRt.setWidth((nleft + nright + 1)*nSingleW); + this->setGeometry(selfRt); + +} + void FormDraw::paintEvent(QPaintEvent*) { -// QPainter painter(this); -// QRect rect = this->rect(); -// //背景透明 -// painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(0, 0, 0, 0)); //QColor(67, 67, 67, 100) - -// painter.setPen(QPen(Qt::green,2,Qt::DashLine)); -// //painter.setBrush(QBrush(Qt::red,Qt::SolidPattern)); - -//// QFont font1("微软雅黑", 10, false, false); //fontSize 10 -//// painter.setFont(font1); -//// painter.setPen(QColor(0, 0, 0)); // fontColor QColor(220, 220, 220) -//// painter.drawText(rect.left() + 10, 10, QStringLiteral("画图")); // titleBarText QStringLiteral("动画") - - -// QRect rectRound(rect.left()+2,rect.top()+4, rect.width()-3, rect.height()-4); -// painter.drawRoundRect(rectRound); + //if (m_listLineName.size() > 0 && m_listLineName.at(0) == "AC") + //{ + // QPainter painter(this); + // QRect rect = this->rect(); + // //背景透明 + // painter.fillRect(rect.left(), rect.top(), rect.width(), rect.height(), QColor(200, 0, 0)); //QColor(67, 67, 67, 100) + //} } @@ -874,13 +933,11 @@ void FormDraw::s_addLine(QString strUuid, QString strSlfName, QString strWellNam // QMyCustomPlot *curv = new QMyCustomPlot(this, strSlfName, strWellName, strTrackName, strLineName); + m_curv = curv; curv->m_strUuid = m_strUuid; //背景设置成透明色 - curv->setBackground(Qt::transparent); - curv->setStyleSheet("background: transparent;"); - // - //QRect rect = this->rect(); - //curv->setGeometry(rect.left(),rect.top(), rect.width(), rect.height()); + curv->setBackground(Qt::transparent); + curv->setStyleSheet("background: transparent;"); double dHight = 0; dHight = (m_iY2-m_iY1)*100.0/(double)m_iScale * g_dPixelPerCm; @@ -895,21 +952,18 @@ void FormDraw::s_addLine(QString strUuid, QString strSlfName, QString strWellNam dHight = 32767; } - //curv->setMaximumHeight((int)dHight); - //curv->setViewport(QRect(0, 0, g_iOneWidth, (int)dHight));//7500-3184 curv->setGeometry(0, 0, g_iOneWidth, (int)dHight);//7500-3184 - - //curv->resize(INT_MAX, INT_MAX); // 使用 INT_MAX 来避免16位整数的限制 -// QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding); -// curv->setSizePolicy(policy); - curv->show(); initForm(curv, strSlfName, strLineName); connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); + QTimer::singleShot(100, this, [=]() { + emit CallManage::getInstance()->sig_ReplotFinished(m_strUuid); + }); // m_listLineName.push_back(strLineName); + } void FormDraw::s_AddLine_Property(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, @@ -971,7 +1025,9 @@ AppendConsole(PAI_INFO, "FormDraw s_AddLine_Property"); newLeftScale, newRightScale, strScaleType, lineColor, width, lineStyle, listOtherProperty); connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); - + QTimer::singleShot(100, this, [=]() { + emit CallManage::getInstance()->sig_ReplotFinished(m_strUuid); + }); // m_listLineName.push_back(strLineName); @@ -1048,6 +1104,9 @@ void FormDraw::s_addWave(QString strUuid, QString strSlfName, QString strWellNam curv->replot(); connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); + QTimer::singleShot(100, this, [=]() { + emit CallManage::getInstance()->sig_ReplotFinished(m_strUuid); + }); // m_listWaveName.push_back(strWaveName); @@ -1199,6 +1258,7 @@ void FormDraw::s_delLine(QString strUuid, QString strWellName, QString strTrackN if(strObjName=="QMyCustomPlot") { QMyCustomPlot *form = (QMyCustomPlot*)childWidget; + m_vecCurv.removeAll(form); if(form->m_strLineName == strLineName) { childWidget->deleteLater(); // 安排控件的删除,稍后执行 @@ -2643,22 +2703,11 @@ void FormDraw::initForm(QMyCustomPlot *widget, QString strSlfName, QString strLi { widget->yAxis->setScaleType(QCPAxis::stLinear); } + // 加入曲线列表 + m_vecCurv << widget; -// // -// widget->yAxis->setRange(vmin, vmax); -// widget->xAxis->setRange(m_iY1, m_iY2); -// widget->axisRect()->setupFullAxesBox(); -// // -// widget->yAxis->ticker()->setTickCount(10);//x个主刻度 -// widget->xAxis->ticker()->setTickCount(60);//y个主刻度 - -// //slf文件读取曲线 -// QVector x, y; -// for(int i=0; i m_vecCurv; + + FormTrack *m_formTrack = NULL; QStringList m_listLineName; QStringList m_listWaveName; diff --git a/logPlus/forminfo.h b/logPlus/forminfo.h index f279788..f5109b4 100644 --- a/logPlus/forminfo.h +++ b/logPlus/forminfo.h @@ -71,6 +71,7 @@ public slots: public: QString m_strUuid; + QString m_strTrackUuid=""; QString m_strSlfName; QString m_strWellName; QString m_strTrackName; @@ -91,6 +92,8 @@ public: float m_vmin;//左刻度 float m_vmax;//右刻度 QString m_strScaleType;//刻度类型(线性,对数) + qint8 m_nLeftCross = 0; // 左跨道个数 + qint8 m_nRightCross = 0; // 右跨道个数 QFont m_curveNameFont; // 曲线名称字体 QFont m_curveUnitFont; // 曲线单位字体 diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index d909ed6..9efffe0 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -2,6 +2,7 @@ #include "ui_formtrack.h" #include #include "CallManage.h" +#include "geometryutils.h" extern int g_iOneWidth; //道宽 @@ -12,6 +13,7 @@ FormTrack::FormTrack(QWidget *parent, QString strWellName, QString strTrackName) { ui->setupUi(this); + m_strTrackUuid = getUUid(); m_strWellName = strWellName; m_strTrackName = strTrackName; @@ -136,6 +138,43 @@ FormTrack::~FormTrack() { delete ui; } + +FormInfo* FormTrack::getFormInfo() +{ + return m_formInfo; +} + +QString FormTrack::getTrackUuid() +{ + return m_strTrackUuid; +} + +FormInfo* FormTrack::getFormInfoByParameters(QString strUuid, QString strWellName, + QString strTrackName, QString strLineName ) +{ + // + int rowCount = ui->tableWidget->rowCount(); + for (int i = 0; i < rowCount; i++) + { + if (ui->tableWidget->cellWidget(i, 0) != nullptr) + { + auto myWidget = ui->tableWidget->cellWidget(i, 0); + FormInfo *formInfo = qobject_cast(myWidget);//获得widget + if (formInfo) + { + if (strUuid == formInfo->m_strUuid + && formInfo->m_strWellName == strWellName + && formInfo->m_strTrackName == strTrackName + && formInfo->m_strLineName == strLineName) + { + return formInfo; + } + } + } + } + return NULL; +} + // // void FormTrack::setTrackPropert(QJsonObject trackObj) // { @@ -287,8 +326,10 @@ FormInfo* FormTrack::setDrawDt(QStringList listdt, QJsonObject obj) //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, m_strTrackName, strLineName, lineColor); + m_formInfo = formInfo; formInfo->initProperty(obj); formInfo->m_strUuid = m_strUuid; + formInfo->m_strTrackUuid = m_strTrackUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strScaleType = strScaleType; formInfo->m_strType = strType; @@ -318,7 +359,9 @@ void FormTrack::s_addLine(QString strSlfName, QString strWellName, QString strTr //曲线信息栏 FormInfo *formInfo = new FormInfo(this, strSlfName, strWellName, strTrackName, strLineName, lineColor); + m_formInfo = formInfo; formInfo->m_strUuid = m_strUuid; + formInfo->m_strTrackUuid = m_strTrackUuid; formInfo->m_strAliasName = strAliasName; formInfo->m_strUnit = strUnit; formInfo->m_strScaleType = strScaleType; diff --git a/logPlus/formtrack.h b/logPlus/formtrack.h index 0d3666f..57ae4d2 100644 --- a/logPlus/formtrack.h +++ b/logPlus/formtrack.h @@ -49,13 +49,24 @@ public: explicit FormTrack(QWidget *parent = nullptr, QString strWellName="", QString strTrackName=""); ~FormTrack(); + FormInfo* getFormInfo(); + // 获取道id + QString getTrackUuid(); + // 根据条件获取FormInfo + FormInfo* getFormInfoByParameters(QString strUuid, QString strWellName, + QString strTrackName, QString strLineName); + private: Ui::FormTrack *ui; public: QString m_strUuid; + // 道ID + QString m_strTrackUuid = ""; QString m_strWellName; QString m_strTrackName; + + FormInfo *m_formInfo = NULL; // 创建自定义单元格委托 //NoLRBorderDelegate *m_delegate; diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index b637e2f..a7fad6b 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -30,6 +30,9 @@ FormWell::FormWell(QWidget *parent, QString strWellName) : ui->tableWidget->setStyleSheet( "QTableView::item:selected {color:#57595B; background:#E4E4E4;}"); + // 假设你的类中有一个槽函数:onTableRowsInserted(QModelIndex parent, int first, int last) + //connect(ui->tableWidget->model(), &QAbstractItemModel::columnsInserted, + // this, &FormWell::onTableColumnsInserted); // 设置右键菜单策略 ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); // 连接信号和槽 @@ -47,6 +50,13 @@ FormWell::FormWell(QWidget *parent, QString strWellName) : connect(CallManage::getInstance(), SIGNAL(sig_NewCol(QStringList)), this, SLOT(s_NewCol(QStringList))); + connect(CallManage::getInstance(), SIGNAL(sig_ChangeCross(QString, QString)), + this, SLOT(s_ChangeCross(QString, QString))); + + connect(CallManage::getInstance(), SIGNAL(sig_ReplotFinished(QString)), + this, SLOT(s_ReplotFinished(QString))); + + QtColorTableData::getInstance()->LoadScheme(); } @@ -113,6 +123,8 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) ui->tableWidget->setRowHeight(i, 100); // FormTrackTop* trackTop= new FormTrackTop(this, strSlfName, strWellName, strTrackName); +// if ("curveObject" == strType) +// trackTop->setFixedWidth(nW/2); vec << trackTop; trackTop->m_strUuid = m_strUuid; trackTop->m_nTrackW = nW / static_cast(g_dPixelPerCm); @@ -125,6 +137,8 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) //曲线名称栏 formTrack = new FormTrack(this, strWellName, strTrackName); +// if ("curveObject" == strType) +// formTrack->setFixedWidth(nW / 2); vec << formTrack; formTrack->m_strUuid = m_strUuid; formTrack->show(); @@ -160,9 +174,26 @@ QVector FormWell::new_track(QStringList listdt, QString strTrackName) ui->tableWidget->setCellWidget(i, columnCount, formDraw); } } + m_mapFormDraw.insert(formTrack->getTrackUuid(), vec); return vec; } +int FormWell::getTableWidgetColumn(QString strTrackUuid) +{ + int nret = -1; + int nColCount = ui->tableWidget->columnCount(); + for (int i = 0; i < nColCount; i++) + { + FormTrack* pTrack = qobject_cast(ui->tableWidget->cellWidget(1, i)); + if (pTrack && pTrack->getTrackUuid() == strTrackUuid) + { + nret = i; + break; + } + } + return nret; +} + void FormWell::s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType) { if(m_strUuid == strUuid && @@ -178,6 +209,36 @@ void FormWell::s_Raise(QString strUuid, QString strSlfName, QString strWellName, } } +void FormWell::s_ChangeCross(QString strUuid, QString strTrackUuid) +{ + const QVector& vecWgt = m_mapFormDraw.value(strTrackUuid); + if (vecWgt.size() <= 2) + return; + + FormDraw *formDraw = qobject_cast(vecWgt.at(2)); + if (formDraw == NULL || formDraw->m_curv == NULL) + return; + + formDraw->crossTrackSetting(); + return; +} + +void FormWell::s_ReplotFinished(QString strUuid) +{ + if (m_strUuid != strUuid) + return; + + int newColCount = ui->tableWidget->columnCount(); + for (int i = 0; i < newColCount; i++) + { + FormDraw *formDraw = qobject_cast(ui->tableWidget->cellWidget(2, i)); + if (formDraw == NULL) + continue; + + formDraw->crossTrackSetting(); + } +} + void FormWell::s_NewTrack(QString strUuid, QString strWellName, QString strSlfName, QString strLineName, QString strType,int nW) { QStringList listdt; @@ -427,7 +488,28 @@ void FormWell::setRowHeight(double dHight, QProgressBar *progressBar, int iSplit } } } + + QTimer::singleShot(100, this, [=]() { + this->s_ReplotFinished(m_strUuid); + }); } +// +//void FormWell::onTableColumnsInserted(const QModelIndex &parent, int first, int last) +//{ +// // 当行被插入时,此函数被自动调用 +// int newRowCount = ui->tableWidget->rowCount(); +// int newColCount = ui->tableWidget->columnCount(); +// qDebug() << "表格行数已变化!新的行数为:" << newRowCount << " 列:"<< newColCount; +// qDebug() << "新插入的行范围是从:" << first << " 到 " << last; +// for (int i = 0; i < newColCount; i++) +// { +// FormDraw *formDraw = qobject_cast(ui->tableWidget->cellWidget(2, i)); +// if (formDraw == NULL) +// continue; +// +// formDraw->crossTrackSetting(); +// } +//} void FormWell::s_NewCol(QStringList listdt) { diff --git a/logPlus/formwell.h b/logPlus/formwell.h index 6c3712d..1288543 100644 --- a/logPlus/formwell.h +++ b/logPlus/formwell.h @@ -25,6 +25,9 @@ public: QVector new_track(QStringList listdt, QString strTrackName = ""); + // 根据道ID,获取列索引 + int getTableWidgetColumn(QString strTrackUuid); + private: Ui::FormWell *ui; @@ -37,6 +40,9 @@ public: double m_iY2=0; QWidget *m_parent; + // 道图形 + QMap> m_mapFormDraw; + public: QJsonObject makeJson(); QStringList getLineList(QString strWellName, QString strTrackName); @@ -46,6 +52,8 @@ public: int setColWidth(int iCurrentCol, int iNewWidth); public slots: + //void onTableColumnsInserted(const QModelIndex &parent, int first, int last); + void s_NewCol(QStringList listdt); void s_NewTrack(QString strUuid, QString strWellName, QString strSlfName, QString strLineName, QString strType,int nW); @@ -56,11 +64,16 @@ public slots: void s_Raise(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iTableType, QString strFormInfoType); + void s_ChangeCross(QString strUuid, QString strTrackUuid);// + + void s_ReplotFinished(QString strUuid); + //图头右键菜单响应函数 void slotContextMenu(QPoint pos); void slotDeleteSelectTrack(); void resizeWindow(); + }; #endif // FORMWELL_H diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index d9533ac..942b8e5 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -2139,6 +2139,7 @@ QStringList MainWindowCurve::getSelectWell_New() { //选中道 //不在此处处理 + return sret; } else { @@ -2149,6 +2150,7 @@ QStringList MainWindowCurve::getSelectWell_New() sret << strWellName << strSlfName; return sret; } + return sret; } QStringList MainWindowCurve::getSelectWell() diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index c32289f..0408430 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -2291,6 +2291,7 @@ bool QMyCustomPlot::CopyToSLFFile(QString targetSLFFileName, bool deleteFromSrc, else logio->CopyFromFile(a_cslfio,curvename); delete[] curvename; delete logio; + return true; } void QMyCustomPlot::onAddRect() @@ -3095,7 +3096,11 @@ void QMyCustomPlot::s_ChangeLeftScale(QString strUuid, QString strSlfName, QStri m_strLineName == strLineName) { m_iX1 = newLeftScale; - yAxis->setRange(m_iX1, m_iX2); + + double rg = m_iX2 - m_iX1; + double lower = m_iX1 - rg * m_nLeftCross; + double upper = m_iX2 + rg * m_nRightCross; + yAxis->setRange(lower, upper); // replot(); } @@ -3122,7 +3127,11 @@ void QMyCustomPlot::s_ChangeRightScale(QString strUuid, QString strSlfName, QStr m_strLineName == strLineName) { m_iX2 = newRightScale; - yAxis->setRange(m_iX1, m_iX2); + + double rg = m_iX2 - m_iX1; + double lower = m_iX1 - rg * m_nLeftCross; + double upper = m_iX2 + rg * m_nRightCross; + yAxis->setRange(lower, upper); // replot(); } diff --git a/logPlus/qmycustomplot.h b/logPlus/qmycustomplot.h index 3c3e622..9ab5251 100644 --- a/logPlus/qmycustomplot.h +++ b/logPlus/qmycustomplot.h @@ -53,6 +53,7 @@ protected: //virtual void mouseMoveEvent(QMouseEvent *event); public: + // 井UUID QString m_strUuid; QString m_strSlfName; QString m_strWellName; @@ -62,6 +63,8 @@ public: // float m_iX1, m_iX2; float m_iY1, m_iY2; + qint8 m_nLeftCross = 0; // 左跨道个数 + qint8 m_nRightCross = 0; // 右跨道个数 //填充曲线 QCPGraph *graph_Fill=nullptr;