diff --git a/logPlus/3rd_qcustomplot/v2_1/qcustomplot.cpp b/logPlus/3rd_qcustomplot/v2_1/qcustomplot.cpp index 2208beb..af191a0 100644 --- a/logPlus/3rd_qcustomplot/v2_1/qcustomplot.cpp +++ b/logPlus/3rd_qcustomplot/v2_1/qcustomplot.cpp @@ -29430,6 +29430,11 @@ QCPItemLine::~QCPItemLine() { } +void QCPItemLine::setPoints(const QVector &vecPoint) +{ + m_vecPt = vecPoint; +} + /*! Sets the pen that will be used to draw the line @@ -29492,19 +29497,34 @@ void QCPItemLine::draw(QCPPainter *painter) { QCPVector2D startVec(start->pixelPosition()); QCPVector2D endVec(end->pixelPosition()); - //jyl - if(m_bCustom) + + if(m_vecPt.size() > 0) { - float x1 = startVec.x() + m_nRadius*sin(m_dr); - float y1 = startVec.y() - m_nRadius*cos(m_dr); + float x1 = startVec.x() + m_vecPt.at(0).x(); + float y1 = startVec.y() - m_vecPt.at(0).y(); startVec.setX(x1); startVec.setY(y1); - // - float x2 = startVec.x() + m_nTailLen*sin(m_dr); - float y2 = startVec.y() - m_nTailLen*cos(m_dr); + float x2 = endVec.x() + m_vecPt.at(1).x(); + float y2 = endVec.y() - m_vecPt.at(1).y(); endVec.setX(x2); endVec.setY(y2); } + else + { + //jyl + if(m_bCustom) + { + float x1 = startVec.x() + m_nRadius*sin(m_dr); + float y1 = startVec.y() - m_nRadius*cos(m_dr); + startVec.setX(x1); + startVec.setY(y1); + // + float x2 = startVec.x() + m_nTailLen*sin(m_dr); + float y2 = startVec.y() - m_nTailLen*cos(m_dr); + endVec.setX(x2); + endVec.setY(y2); + } + } if (qFuzzyIsNull((startVec - endVec).lengthSquared())) { return; @@ -30197,6 +30217,15 @@ double QCPItemText::selectTest(const QPointF &pos, bool onlySelectable, QVariant void QCPItemText::draw(QCPPainter *painter) { QPointF pos(position->pixelPosition()); + + if(m_bCustom) + { + float fx = pos.x(); + float fy = pos.y(); + pos.setX(fx + m_fx); + pos.setY(fy - m_fy); + } + QTransform transform = painter->transform(); transform.translate(pos.x(), pos.y()); if (!qFuzzyIsNull(mRotation)) { @@ -31424,13 +31453,14 @@ QCPItemPolygon::QCPItemPolygon(QCustomPlot *parentPlot) : bottomLeft->setCoords(0, 0); bottomRight->setCoords(1, 0); + m_brushClr = Qt::black; // 此处填写真实的坐标! // vertices << QPointF(-71.8, 5.2) << QPointF(-68.2, -5.2) << QPointF(6.7, 4.9) << QPointF(3.1, 15.3); } void QCPItemPolygon::draw(QCPPainter *painter) { - if (ni < 0) + if (vertices.size() <= 0) return; QPointF center(topLeft->pixelPosition()); @@ -31438,21 +31468,14 @@ void QCPItemPolygon::draw(QCPPainter *painter) float x = center.x(); float y = center.y(); - float dr=ni*flVal; - float x1 = x + ifdir*sin(dr); - float y1 = y - ifdir*cos(dr); - dr=(ni+1)*flVal; - float x2 = x + ifdir*sin(dr); - float y2 = y - ifdir*cos(dr); - QPolygonF myPolygon; - myPolygon << QPointF(x, y); - myPolygon << QPointF(x1, y1); - myPolygon << QPointF(x2, y2); - myPolygon << QPointF(x, y); + for(int i = 0; i < vertices.size(); i++) + { + myPolygon << QPointF(x + vertices.at(i).x(), y - vertices.at(i).y()); + } painter->setPen(Qt::black); // Set the pen color as needed - painter->setBrush(QBrush(Qt::black)); // Set the brush if needed + painter->setBrush(QBrush(m_brushClr)); // Set the brush if needed painter->drawPolygon(myPolygon); } @@ -31468,6 +31491,11 @@ void QCPItemPolygon::setPoints(const QVector &vecPoint) vertices = vecPoint; } +void QCPItemPolygon::setBrushColor(const QColor &clr) +{ + m_brushClr = clr; +} + void QCPItemPolygon::setPloyVal(int i, float fv, float dir) { ni = i; diff --git a/logPlus/3rd_qcustomplot/v2_1/qcustomplot.h b/logPlus/3rd_qcustomplot/v2_1/qcustomplot.h index 4e50f7f..bbb6cf0 100644 --- a/logPlus/3rd_qcustomplot/v2_1/qcustomplot.h +++ b/logPlus/3rd_qcustomplot/v2_1/qcustomplot.h @@ -7222,6 +7222,8 @@ public: return mTail; } + void setPoints(const QVector& vecPoint); + // setters; void setPen(const QPen &pen); void setSelectedPen(const QPen &pen); @@ -7245,6 +7247,8 @@ public: float m_dr; // 方位 float m_nRadius; // 半径 + QVector m_vecPt; + // reimplemented virtual methods: virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE; @@ -7478,6 +7482,10 @@ public: QCPItemAnchor *const bottomLeft; QCPItemAnchor *const left; + bool m_bCustom; + float m_fx; + float m_fy; + protected: enum AnchorIndex {aiTopLeft, aiTop, aiTopRight, aiRight, aiBottomRight, aiBottom, aiBottomLeft, aiLeft}; @@ -7848,7 +7856,7 @@ public: // 设置真实的点信息 void setPoints(const QVector& vecPoint); - + void setBrushColor(const QColor& clr); void setPloyVal(int i, float fv, float dir); // Define position types @@ -7859,7 +7867,7 @@ public: // Define the polygon vertices QVector vertices; - + QColor m_brushClr; int ni = -1; float flVal; float ifdir; diff --git a/logPlus/formdraw.cpp b/logPlus/formdraw.cpp index 7ad3dc3..c135564 100644 --- a/logPlus/formdraw.cpp +++ b/logPlus/formdraw.cpp @@ -125,6 +125,10 @@ void FormDraw::setDrawData(QStringList listdt) { initFgrq(curv); } + else if("roseObject" == strType) + { + initRose(curv); + } curv->replot(); connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); @@ -3400,7 +3404,7 @@ void FormDraw::initFgrq(QMyCustomPlot *widget) // if(m_Value == NULL) { - m_bTableData = true; // 表格 曲线 + m_bTableData = false; // 表格 曲线 m_csCurveDDIR = "DDIR"; // 方位 曲线名 m_csCurveDANG = "DANG";//倾角 m_csCurveGrad = "GRAD"; @@ -3601,10 +3605,23 @@ void FormDraw::initFgrq(QMyCustomPlot *widget) continue; QCPItemPolygon* pol = new QCPItemPolygon(widget); pol->topLeft->setCoords(x, y); - pol->bottomRight->setCoords(x, y); - pol->setPloyVal(i,flVal, ifdir[i]); - // pol->setPoints(myPolygon); - // pol->setPoints(myPolygon); + pol->bottomRight->setCoords(x, y); + + // pol->setPloyVal(i,flVal, ifdir[i]); + + float dr=i*flVal; + float x1 = ifdir[i]*sin(dr); + float y1 = ifdir[i]*cos(dr); + dr=(i+1)*flVal; + float x2 = ifdir[i]*sin(dr); + float y2 = ifdir[i]*cos(dr); + + QPolygonF myPolygon; + myPolygon << QPointF(0, 0); + myPolygon << QPointF(x1, y1); + myPolygon << QPointF(x2, y2); + myPolygon << QPointF(0, 0); + pol->setPoints(myPolygon); // QCPItemRect* prt = new QCPItemRect(widget); // prt->topLeft->setCoords(x, y); @@ -3628,6 +3645,369 @@ void FormDraw::initFgrq(QMyCustomPlot *widget) } +void FormDraw::initRose(QMyCustomPlot *widget) +{ + widget->m_iX1 = 0; + widget->m_iX2 = 1024; + widget->m_iY1 = g_iY1; + widget->m_iY2 = g_iY2; + // + widget->xAxis->setRange(widget->m_iX1, widget->m_iX2); + widget->yAxis->setRange(g_iY1, g_iY2); + + //对调XY轴,在最前面设置 + QCPAxis *yAxis = widget->yAxis; + QCPAxis *xAxis = widget->xAxis; + widget->xAxis = yAxis; + widget->yAxis = xAxis; + + + // if(m_Value == NULL) + { + m_bTableData = false; // 表格 曲线 + m_csCurveDDIR = "STRDIR"; // 方位 曲线名 + m_csCurveDANG = "CALM";//倾角 + m_csCurveGrad = "GRAD"; + + m_qsTable="FRAC_HOLE.TABLE"; + m_qsDIR=("DDIR"); // 方位 曲线名 + m_qsDIP=("DANG");//倾角 + m_qsDepth="DEPT"; + m_qsID = "ID"; + + Refurbish(); + } + + double nR = 40; + + QPen wPen(Qt::black, 2); + double centerX = widget->m_iX2/2; + + float flVal = 0.0f; + float x,y,x1,y1,x2,y2; + float ifdir[360]; + int m_nArc = 36; + float m_LeftVal3 = 0; + float m_RightVal3 = 100.0; + m_LeftVal = 0.0f; + m_RightVal = 90.0f; + float mind=min(m_RightVal , m_LeftVal); + float maxd=max(m_RightVal , m_LeftVal); + float dirmax,dipmax,dr; + + float deps; + + float ftmpSdep = 2890;//m_SDep; + float ftmpEdep = m_EDep; + if (m_bTableData) + { + ReadFracDef(); + for (int i = 0 ; i < iFracType ; i++) + { + m_bTypeDraw[i] = true; + } + + ftmpSdep = -g_iY2; + ftmpEdep = -g_iY1; + } + + int nPointNum = m_FracTabList.count(); + int n = m_FracDefList.count(); + int nstep = 5; + int tmp = ftmpSdep / nstep; + float flDep = tmp * nstep; + + double pi = 3.1415926535; + // 射线 + bool m_bGrid = true; + // 井眼垮塌 + bool m_bJykt = true; + // 标注 + bool m_bHint = true; + int m_nAzimStep = 3; + + m_Curve.DepLevel = 0.5; + while ( 1) + { + if((flDep>=ftmpEdep+nstep)||flDep>=ftmpEdep)break; + + double tempf = flDep+(float)(nstep)/2.; + double centerY = tempf * -1.0; + + wPen.setWidth(2); + wPen.setColor(Qt::black); + QCPItemEllipse* pEse = new QCPItemEllipse(widget); + pEse->setPen(wPen); + pEse->m_bCustom = true; + pEse->m_nRadius = nR; + pEse->topLeft->setCoords(centerY, centerX); + pEse->bottomRight->setCoords(centerY, centerX); + + for(int k = 0; k < 4; k++) + { + QCPItemLine* pLine1 = new QCPItemLine(widget); + pLine1->m_bCustom = true; + pLine1->m_dr = qDegreesToRadians(k*90.0); + pLine1->m_nRadius = 0; + pLine1->m_nTailLen=nR; + pLine1->setPen(wPen); + pLine1->start->setCoords(centerY,centerX); + pLine1->end->setCoords(centerY,centerX); + } + + // 写标注 + if ( m_bHint ) + { + int psize = 10; + flVal = m_nAzimStep*360./m_nArc; + for (int i=0 ;i<360; i+=(int)(flVal)) + { + QCPItemText* mItemTitle = new QCPItemText(widget); + mItemTitle->position->setCoords(centerY,centerX); + mItemTitle->setText(QString::number(i)); + //mItemTitle->setBrush(QBrush(Qt::red)); + mItemTitle->setFont(QFont("Arial", 10)); + mItemTitle->setColor(Qt::black); + + dr = i*2* 3.1415926535/ 360.; + mItemTitle->m_fx = (nR+psize*0.85)*sin(dr); + mItemTitle->m_fy = (nR+psize*0.85)*cos(dr); + mItemTitle->m_bCustom = true; + } + + } + + if(m_bGrid) + { + wPen.setWidth(1); + + double st = 360/m_nArc; + for(int i = 0; i < m_nArc; i++) + { + int ntmp = i % 9; + if(ntmp != 0) + { + QCPItemLine* pLine = new QCPItemLine(widget); + pLine->m_bCustom = true; + pLine->m_dr = qDegreesToRadians(i * st); + pLine->m_nRadius = 0; + pLine->m_nTailLen=nR; + pLine->setPen(wPen); + pLine->start->setCoords(centerY,centerX); + pLine->end->setCoords(centerY,centerX); + } + } + } + + for(int i=0;i<=m_nArc;i++) ifdir[i]=0.; + x1 = 360./m_nArc; + + int i = 0; + while ( 1 ) + { + deps = flDep + i * m_Curve.DepLevel; + + tempf = (deps-m_Curve.StartDepth)/m_Curve.DepLevel+0.5; + if (deps >= ftmpEdep|| + deps > m_Curve.EndDepth|| + deps >=( flDep + nstep)) + break; + if(tempf<0) + { + i++; + continue; + } + + if (m_Value3 !=NULL )// for 控制曲线 + { + float tempf3 = (deps-m_Curve3.StartDepth)/m_Curve3.DepLevel+0.5; + if(tempf3<0) + { + i++; + continue; + } + double grad = GetData(m_Curve3.RepCode,(char *)&m_Value3[(int)(tempf3)*m_Curve3.CodeLen]); + if(gradm_RightVal3){i++;continue;} + } + if (m_Value2 !=NULL ) // 倾角控制 + { + tempf = (deps-m_Curve2.StartDepth)/m_Curve2.DepLevel+0.5; + flVal = GetData(m_Curve2.RepCode,(char *)&m_Value2[(int)(tempf)*m_Curve2.CodeLen]); + //按倾角范围统计 + if(flVal > maxd || flVal < mind) + { + i++; + continue; + } + } + + tempf = (deps-m_Curve.StartDepth)/m_Curve.DepLevel+0.5; + flVal = GetData(m_Curve.RepCode,(char *)&m_Value[(int)(tempf)*m_Curve.CodeLen]); + if(flVal<0) + { + i++; + continue; + } + flVal=fmod(flVal,360.f); + int j = flVal/x1; + if ( j >= 0 && j< m_nArc+1 ) + ifdir[j] ++; + i ++; + } + + dirmax=0; + int iIndex = -1; + for(i=0;i<=m_nArc;i++) + { + if (dirmax=m_nArc ) + dr=0.; + else + dr=(i+1)*flVal; + + dr=(i+1)*flVal; + float x2 = ifdir[i]*nR*sin(dr)/dirmax; + float y2 = ifdir[i]*nR*cos(dr)/dirmax; + + if(oldx != x2 || oldy != y2) + { + myPolygon << QPointF(x2, y2); + oldx = x2; + oldy = y2; + } + } + // pt[2*m_nArc+2] = pt[0]; + + if (iIndex >=0/*&&m_bFill*/ ) + { + x = centerY; + y = centerX; + QCPItemPolygon* pol = new QCPItemPolygon(widget); + pol->topLeft->setCoords(x, y); + pol->bottomRight->setCoords(x, y); + pol->setPoints(myPolygon); + pol->setBrushColor(QColor(255,170,0)); + } + + myPolygon.clear(); + tempf = m_nArc/2.; + for (i=0 ;i<=m_nArc; i++) + { + dr=i*flVal; + dr = dr-tempf*flVal; + float x1 = ifdir[i]*nR*sin(dr)/dirmax; + float y1 = ifdir[i]*nR*cos(dr)/dirmax; + + if(oldx != x1 || oldy != y1) + { + myPolygon << QPointF(x1, y1); + oldx = x1; + oldy = y1; + } + + if ( i >=m_nArc ) + dr=0.; + else + dr=(i+1)*flVal; + dr = dr-tempf*flVal; + float x2 = ifdir[i]*nR*sin(dr)/dirmax; + float y2 = ifdir[i]*nR*cos(dr)/dirmax; + if(oldx != x2 || oldy != y2) + { + myPolygon << QPointF(x2, y2); + oldx = x2; + oldy = y2; + } + } + if (iIndex >=0/*&&m_bFill*/ ) + { + x = centerY; + y = centerX; + QCPItemPolygon* pol = new QCPItemPolygon(widget); + pol->topLeft->setCoords(x, y); + pol->bottomRight->setCoords(x, y); + pol->setPoints(myPolygon); + pol->setBrushColor(QColor(255,170,0)); + } + + + if ( m_bJykt && iIndex >=0 ) + { + // 绘制垮塌方向 + dr=iIndex*flVal; + dr = dr-pi/2;//9*flVal; + x1 = ifdir[iIndex]*nR*sin(dr)/dirmax; + y1 = ifdir[iIndex]*nR*cos(dr)/dirmax; + + dr=iIndex*flVal; + dr = dr+pi/2; + x2 = ifdir[iIndex]*nR*sin(dr)/dirmax; + y2 = ifdir[iIndex]*nR*cos(dr)/dirmax; + + wPen.setWidth(2); + wPen.setColor(QColor(0,85,255)); + this->addQCPItemLine(widget, centerY,centerX, QPointF(x1, y1), QPointF(x2, y2), wPen); + + dr=iIndex*flVal; + float x3 = 0.1*ifdir[iIndex]*nR*sin(dr)/dirmax; + float y3 = 0.1*ifdir[iIndex]*nR*cos(dr)/dirmax; + this->addQCPItemLine(widget, centerY,centerX, QPointF(x1, y1), QPointF(x3, y3), wPen); + this->addQCPItemLine(widget, centerY,centerX, QPointF(x3, y3), QPointF(x2, y2), wPen); + + dr=iIndex*flVal; + dr = dr-pi;//18*flVal;//m1_nArc*flVal/2; + x3 = 0.1*ifdir[iIndex]*nR*sin(dr)/dirmax; + y3 = 0.1*ifdir[iIndex]*nR*cos(dr)/dirmax; + + this->addQCPItemLine(widget, centerY,centerX, QPointF(x1, y1), QPointF(x3, y3), wPen); + this->addQCPItemLine(widget, centerY,centerX, QPointF(x3, y3), QPointF(x2, y2), wPen); + + } + + flDep += nstep; + } + +} + +void FormDraw::addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen) +{ + QPolygonF myPolygon; + myPolygon << p1; + myPolygon << p2; + + QCPItemLine* pLine = new QCPItemLine(widget); + pLine->setPen(wPen); + pLine->start->setCoords(cx,cy); + pLine->end->setCoords(cx,cy); + pLine->setPoints(myPolygon); +} + //岩心实验数据 void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QString strLineName) { diff --git a/logPlus/formdraw.h b/logPlus/formdraw.h index 5bdc6ba..3cff965 100644 --- a/logPlus/formdraw.h +++ b/logPlus/formdraw.h @@ -185,7 +185,9 @@ public: void initDepth(QMyCustomPlot *widget); //频率统计图 void initFgrq(QMyCustomPlot *widget); - + //玫瑰图 + void initRose(QMyCustomPlot *widget); + void addQCPItemLine(QMyCustomPlot *widget, float cx, float cy, const QPointF& p1, const QPointF& p2, const QPen& wPen); signals: //void sig_AddLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); diff --git a/logPlus/formtrack.cpp b/logPlus/formtrack.cpp index 8b21fe6..e5b6017 100644 --- a/logPlus/formtrack.cpp +++ b/logPlus/formtrack.cpp @@ -167,6 +167,10 @@ void FormTrack::setDrawDt(QStringList listdt, float vmax, float vmin) { strAliasName = "频率统计图"; } + else if("roseObject" == strType) + { + strAliasName = "玫瑰图"; + } QString strUnit = ""; QColor lineColor=QColor(0,0,0); double width=2; diff --git a/logPlus/formwell.cpp b/logPlus/formwell.cpp index a133663..a281239 100644 --- a/logPlus/formwell.cpp +++ b/logPlus/formwell.cpp @@ -311,6 +311,8 @@ void FormWell::s_NewCol(QStringList listdt) QString strTrackName = "道" + QString::number(columnCount+1); if(strType == "depthObject") strTrackName = "深度"; + if(strType == "roseObject") + strTrackName = "玫瑰图"; FormTrack *formTrack = NULL; //总行数 diff --git a/logPlus/logPlus.pro b/logPlus/logPlus.pro index 503e4ef..604ca99 100644 --- a/logPlus/logPlus.pro +++ b/logPlus/logPlus.pro @@ -145,44 +145,44 @@ RESOURCES += \ RC_FILE = $$PWD/qrc/logplus.rc CONFIG(debug, debug|release){ - DESTDIR = ../Bin + DESTDIR = ../../Bin TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀 } else { - DESTDIR = ../Bin + DESTDIR = ../../Bin TARGET = $$join(TARGET,,,) } -INCLUDEPATH += ../Slfio/include -INCLUDEPATH += ../common -INCLUDEPATH += ../WellLogUI/include -INCLUDEPATH += ../qtpropertybrowser -INCLUDEPATH += ../BaseFun/include -INCLUDEPATH += ../ConvertorManager/include -INCLUDEPATH += ../OSGDataModel/include -INCLUDEPATH += ../OSGFramework/include -INCLUDEPATH += ../DataOutput/include -INCLUDEPATH += ../DataMgr/include +INCLUDEPATH += ../../Slfio/include +INCLUDEPATH += ../../common +INCLUDEPATH += ../../WellLogUI/include +INCLUDEPATH += ../../qtpropertybrowser +INCLUDEPATH += ../../BaseFun/include +INCLUDEPATH += ../../ConvertorManager/include +INCLUDEPATH += ../../OSGDataModel/include +INCLUDEPATH += ../../OSGFramework/include +INCLUDEPATH += ../../DataOutput/include +INCLUDEPATH += ../../DataMgr/include CONFIG(debug, debug|release){ - LIBS += -L../Bin -lBaseFund - LIBS += -L../Bin -lslfiod - LIBS += -L../Bin -lWellLogUId - LIBS += -L../Bin -lqtpropertybrowserd - LIBS += -L../Bin -lConvertorManagerd - LIBS += -L../Bin -lOSGDataModeld - LIBS += -L../Bin -lDataOutputd - LIBS += -L../Bin/ -lCallPlugind -lHPluginManaged - LIBS += -L../Bin/ -lDataMgrd + LIBS += -L../../Bin -lBaseFund + LIBS += -L../../Bin -lslfiod + LIBS += -L../../Bin -lWellLogUId + LIBS += -L../../Bin -lqtpropertybrowserd + LIBS += -L../../Bin -lConvertorManagerd + LIBS += -L../../Bin -lOSGDataModeld + LIBS += -L../../Bin -lDataOutputd + LIBS += -L../../Bin/ -lCallPlugind -lHPluginManaged + LIBS += -L../../Bin/ -lDataMgrd #-lCallManaged } else { - LIBS += -L../Bin -lBaseFun - LIBS += -L../Bin -lslfio - LIBS += -L../Bin -lWellLogUI - LIBS += -L../Bin -lqtpropertybrowser - LIBS += -L../Bin -lConvertorManager - LIBS += -L../Bin -lOSGDataModel - LIBS += -L../Bin -lDataOutput - LIBS += -L../Bin/ -lCallPlugin -lHPluginManage - LIBS += -L../Bin/ -lDataMgr + LIBS += -L../../Bin -lBaseFun + LIBS += -L../../Bin -lslfio + LIBS += -L../../Bin -lWellLogUI + LIBS += -L../../Bin -lqtpropertybrowser + LIBS += -L../../Bin -lConvertorManager + LIBS += -L../../Bin -lOSGDataModel + LIBS += -L../../Bin -lDataOutput + LIBS += -L../../Bin/ -lCallPlugin -lHPluginManage + LIBS += -L../../Bin/ -lDataMgr #-lCallManage } diff --git a/logPlus/mainwindowcurve.cpp b/logPlus/mainwindowcurve.cpp index 61b3a2d..8d82408 100644 --- a/logPlus/mainwindowcurve.cpp +++ b/logPlus/mainwindowcurve.cpp @@ -368,6 +368,7 @@ void MainWindowCurve::initToolBar() //connect(m_newAc2, &QAction::triggered, this, &MainWindowCurve::s_NewWell); connect(m_depthAc, &QAction::triggered, this, &MainWindowCurve::s_NewDepth); connect(m_pinlvAc, &QAction::triggered, this, &MainWindowCurve::s_pinLvAc); + connect(m_roseAc, &QAction::triggered, this, &MainWindowCurve::s_roseAc); // connect(m_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne); // connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage); // connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg); @@ -378,6 +379,71 @@ void MainWindowCurve::initToolBar() connect(m_electric_imagingAc, &QAction::triggered, this, &MainWindowCurve::s_DrawImage); } +QStringList MainWindowCurve::insertCol(int nW) +{ + QStringList sret; + int column = -1; + QString strSlfName = ""; + QString strLeft = m_leftWidgets->getLeftTreeString(); + if(strLeft.length() > 0) + { + QStringList list = strLeft.split("#@@#");//QString字符串分割函数 + if (list.size() > 3) + { + strSlfName = list[0]; + QString strWellName = list[1]; + // QString strLineName = list[2]; + // QString strType = list[3]; + + if(!m_listWell.contains(strWellName)) + { + //井没创建,创建井+道+曲线 + //新建井 + s_NewWell(strWellName); + m_listWell.push_back(strWellName); + + column= 0; + } + } + } + + if(ui->tableWidget_2->columnCount()==0) + { + return sret; + } + + int iWidth = 0; + if(column < 0) + { + column = ui->tableWidget_2->currentColumn();//列编号从0开始 + iWidth = ui->tableWidget_2->columnWidth(column); + } + + if(column<0) + { + //当前没有选中井 + return sret; + } + + if(column%2==0) + { + } + else + { + //空白列 + return sret; + } + + QString strWellName = ui->tableWidget_2->item(0, column)->text(); + + //设置列宽 + ui->tableWidget_2->setColumnWidth(column, iWidth+nW+8); + + sret << strWellName << strSlfName; + + return sret; +} + void MainWindowCurve::loadStyle(const QString &qssFile) { //加载样式表 @@ -733,68 +799,15 @@ void MainWindowCurve::s_NewDepth() void MainWindowCurve::s_pinLvAc() { - int column = -1; int nW = 160; - QString strSlfName = ""; - QString strLeft = m_leftWidgets->getLeftTreeString(); - if(strLeft.length() > 0) - { - QStringList list = strLeft.split("#@@#");//QString字符串分割函数 - if (list.size() > 3) - { - strSlfName = list[0]; - QString strWellName = list[1]; - // QString strLineName = list[2]; - // QString strType = list[3]; - - if(!m_listWell.contains(strWellName)) - { - //井没创建,创建井+道+曲线 - //新建井 - s_NewWell(strWellName); - m_listWell.push_back(strWellName); - - column= 0; - } - } - } - - if(ui->tableWidget_2->columnCount()==0) - { + QStringList sret = this->insertCol(nW); + if(sret.length() <= 0) return; - } - - int iWidth = 0; - if(column < 0) - { - column = ui->tableWidget_2->currentColumn();//列编号从0开始 - iWidth = ui->tableWidget_2->columnWidth(column); - } - - if(column<0) - { - //当前没有选中井 - return; - } - - if(column%2==0) - { - } - else - { - //空白列 - return; - } - - QString strWellName = ui->tableWidget_2->item(0, column)->text(); - - //设置列宽 - ui->tableWidget_2->setColumnWidth(column, iWidth+nW+8); QStringList dt; dt << m_strUuid; - dt << strWellName; - dt << strSlfName; + dt << sret.at(0); + dt << sret.at(1); dt << ""; dt << "plObject"; dt << QString::number(nW); @@ -847,6 +860,24 @@ void MainWindowCurve::s_NewGanZhuangTu() emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "杆状图", "ganzhuangtuObject", nW); } +void MainWindowCurve::s_roseAc() +{ + int nW = 160; + QStringList sret = this->insertCol(nW); + if(sret.length() <= 0) + return; + + QStringList dt; + dt << m_strUuid; + dt << sret.at(0); + dt << sret.at(1); + dt << ""; + dt << "roseObject"; + dt << QString::number(nW); + //新建道 + emit CallManage::getInstance()->sig_NewCol(dt); +} + //井眼垮塌矢量图 void MainWindowCurve::s_Jykt() { diff --git a/logPlus/mainwindowcurve.h b/logPlus/mainwindowcurve.h index 5790ce0..e163adb 100644 --- a/logPlus/mainwindowcurve.h +++ b/logPlus/mainwindowcurve.h @@ -85,6 +85,9 @@ public: void initMainToolBar(); void initToolBar(); + // 返回 strWellName << strSlfName + QStringList insertCol(int nW); + //停靠 void dockLayout(); @@ -110,6 +113,7 @@ public slots: void s_pinLvAc(); // 频率统计 void s_NewGanZhuangTu(); // 杆状图 + void s_roseAc(); // 玫瑰图 void s_Jykt(); // 井眼垮塌矢量图 void s_Denv(); // 井斜方位图 void s_DrawImage(); // 图像 成图 diff --git a/logPlus/qmycustomplot.cpp b/logPlus/qmycustomplot.cpp index 2ccc0bf..a9b5076 100644 --- a/logPlus/qmycustomplot.cpp +++ b/logPlus/qmycustomplot.cpp @@ -24,7 +24,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel setObjectName("QMyCustomPlot"); //this->setOpenGl(true);//不开启,电脑不支持会卡 - this->setNotAntialiasedElements(QCP::aeAll); // 关闭所有抗锯齿 + // this->setNotAntialiasedElements(QCP::aeAll); // 关闭所有抗锯齿 + + // 开启抗锯齿 + this->setAntialiasedElement(QCP::aeAll); //jyl if(g_iShow==1)