玫瑰图的实现 ,曲线型数据, 没有表格型数据

This commit is contained in:
DESKTOP-450PEFP\mainc 2025-12-30 16:11:58 +08:00
parent 1b03eacaa0
commit 6a03ec99f3
10 changed files with 578 additions and 116 deletions

View File

@ -29430,6 +29430,11 @@ QCPItemLine::~QCPItemLine()
{ {
} }
void QCPItemLine::setPoints(const QVector<QPointF> &vecPoint)
{
m_vecPt = vecPoint;
}
/*! /*!
Sets the pen that will be used to draw the line 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 startVec(start->pixelPosition());
QCPVector2D endVec(end->pixelPosition()); QCPVector2D endVec(end->pixelPosition());
//jyl
if(m_bCustom) if(m_vecPt.size() > 0)
{ {
float x1 = startVec.x() + m_nRadius*sin(m_dr); float x1 = startVec.x() + m_vecPt.at(0).x();
float y1 = startVec.y() - m_nRadius*cos(m_dr); float y1 = startVec.y() - m_vecPt.at(0).y();
startVec.setX(x1); startVec.setX(x1);
startVec.setY(y1); startVec.setY(y1);
// float x2 = endVec.x() + m_vecPt.at(1).x();
float x2 = startVec.x() + m_nTailLen*sin(m_dr); float y2 = endVec.y() - m_vecPt.at(1).y();
float y2 = startVec.y() - m_nTailLen*cos(m_dr);
endVec.setX(x2); endVec.setX(x2);
endVec.setY(y2); 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())) { if (qFuzzyIsNull((startVec - endVec).lengthSquared())) {
return; return;
@ -30197,6 +30217,15 @@ double QCPItemText::selectTest(const QPointF &pos, bool onlySelectable, QVariant
void QCPItemText::draw(QCPPainter *painter) void QCPItemText::draw(QCPPainter *painter)
{ {
QPointF pos(position->pixelPosition()); 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(); QTransform transform = painter->transform();
transform.translate(pos.x(), pos.y()); transform.translate(pos.x(), pos.y());
if (!qFuzzyIsNull(mRotation)) { if (!qFuzzyIsNull(mRotation)) {
@ -31424,13 +31453,14 @@ QCPItemPolygon::QCPItemPolygon(QCustomPlot *parentPlot) :
bottomLeft->setCoords(0, 0); bottomLeft->setCoords(0, 0);
bottomRight->setCoords(1, 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); // 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) void QCPItemPolygon::draw(QCPPainter *painter)
{ {
if (ni < 0) if (vertices.size() <= 0)
return; return;
QPointF center(topLeft->pixelPosition()); QPointF center(topLeft->pixelPosition());
@ -31438,21 +31468,14 @@ void QCPItemPolygon::draw(QCPPainter *painter)
float x = center.x(); float x = center.x();
float y = center.y(); 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; QPolygonF myPolygon;
myPolygon << QPointF(x, y); for(int i = 0; i < vertices.size(); i++)
myPolygon << QPointF(x1, y1); {
myPolygon << QPointF(x2, y2); myPolygon << QPointF(x + vertices.at(i).x(), y - vertices.at(i).y());
myPolygon << QPointF(x, y); }
painter->setPen(Qt::black); // Set the pen color as needed 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); painter->drawPolygon(myPolygon);
} }
@ -31468,6 +31491,11 @@ void QCPItemPolygon::setPoints(const QVector<QPointF> &vecPoint)
vertices = vecPoint; vertices = vecPoint;
} }
void QCPItemPolygon::setBrushColor(const QColor &clr)
{
m_brushClr = clr;
}
void QCPItemPolygon::setPloyVal(int i, float fv, float dir) void QCPItemPolygon::setPloyVal(int i, float fv, float dir)
{ {
ni = i; ni = i;

View File

@ -7222,6 +7222,8 @@ public:
return mTail; return mTail;
} }
void setPoints(const QVector<QPointF>& vecPoint);
// setters; // setters;
void setPen(const QPen &pen); void setPen(const QPen &pen);
void setSelectedPen(const QPen &pen); void setSelectedPen(const QPen &pen);
@ -7245,6 +7247,8 @@ public:
float m_dr; // 方位 float m_dr; // 方位
float m_nRadius; // 半径 float m_nRadius; // 半径
QVector<QPointF> m_vecPt;
// reimplemented virtual methods: // reimplemented virtual methods:
virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE; virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
@ -7478,6 +7482,10 @@ public:
QCPItemAnchor *const bottomLeft; QCPItemAnchor *const bottomLeft;
QCPItemAnchor *const left; QCPItemAnchor *const left;
bool m_bCustom;
float m_fx;
float m_fy;
protected: protected:
enum AnchorIndex {aiTopLeft, aiTop, aiTopRight, aiRight, aiBottomRight, aiBottom, aiBottomLeft, aiLeft}; enum AnchorIndex {aiTopLeft, aiTop, aiTopRight, aiRight, aiBottomRight, aiBottom, aiBottomLeft, aiLeft};
@ -7848,7 +7856,7 @@ public:
// 设置真实的点信息 // 设置真实的点信息
void setPoints(const QVector<QPointF>& vecPoint); void setPoints(const QVector<QPointF>& vecPoint);
void setBrushColor(const QColor& clr);
void setPloyVal(int i, float fv, float dir); void setPloyVal(int i, float fv, float dir);
// Define position types // Define position types
@ -7859,7 +7867,7 @@ public:
// Define the polygon vertices // Define the polygon vertices
QVector<QPointF> vertices; QVector<QPointF> vertices;
QColor m_brushClr;
int ni = -1; int ni = -1;
float flVal; float flVal;
float ifdir; float ifdir;

View File

@ -125,6 +125,10 @@ void FormDraw::setDrawData(QStringList listdt)
{ {
initFgrq(curv); initFgrq(curv);
} }
else if("roseObject" == strType)
{
initRose(curv);
}
curv->replot(); curv->replot();
connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*))); connect(curv, SIGNAL(mouseWheel(QWheelEvent*)), this, SLOT(s_mouseWheel(QWheelEvent*)));
@ -3400,7 +3404,7 @@ void FormDraw::initFgrq(QMyCustomPlot *widget)
// if(m_Value == NULL) // if(m_Value == NULL)
{ {
m_bTableData = true; // 表格 曲线 m_bTableData = false; // 表格 曲线
m_csCurveDDIR = "DDIR"; // 方位 曲线名 m_csCurveDDIR = "DDIR"; // 方位 曲线名
m_csCurveDANG = "DANG";//倾角 m_csCurveDANG = "DANG";//倾角
m_csCurveGrad = "GRAD"; m_csCurveGrad = "GRAD";
@ -3601,10 +3605,23 @@ void FormDraw::initFgrq(QMyCustomPlot *widget)
continue; continue;
QCPItemPolygon* pol = new QCPItemPolygon(widget); QCPItemPolygon* pol = new QCPItemPolygon(widget);
pol->topLeft->setCoords(x, y); pol->topLeft->setCoords(x, y);
pol->bottomRight->setCoords(x, y); pol->bottomRight->setCoords(x, y);
pol->setPloyVal(i,flVal, ifdir[i]);
// pol->setPoints(myPolygon); // pol->setPloyVal(i,flVal, ifdir[i]);
// pol->setPoints(myPolygon);
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); // QCPItemRect* prt = new QCPItemRect(widget);
// prt->topLeft->setCoords(x, y); // 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(grad<m_LeftVal3||grad>m_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<ifdir[i])
{
iIndex = i;
dirmax=ifdir[i];
}
}
ifdir[m_nArc+1]=ifdir[1];
//没有统计点,不绘制
if (dirmax == 0 ) dirmax=1;
flVal = pi *2./ m_nArc ;
QPolygonF myPolygon;
float oldx, oldy;
for (i=0 ;i<=m_nArc; i++)
{
dr=i*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=(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) void FormDraw::initCorePhysics(QMyCustomPlot *widget, QString strSlfName, QString strLineName)
{ {

View File

@ -185,7 +185,9 @@ public:
void initDepth(QMyCustomPlot *widget); void initDepth(QMyCustomPlot *widget);
//频率统计图 //频率统计图
void initFgrq(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: signals:
//void sig_AddLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName); //void sig_AddLine(QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);

View File

@ -167,6 +167,10 @@ void FormTrack::setDrawDt(QStringList listdt, float vmax, float vmin)
{ {
strAliasName = "频率统计图"; strAliasName = "频率统计图";
} }
else if("roseObject" == strType)
{
strAliasName = "玫瑰图";
}
QString strUnit = ""; QString strUnit = "";
QColor lineColor=QColor(0,0,0); QColor lineColor=QColor(0,0,0);
double width=2; double width=2;

View File

@ -311,6 +311,8 @@ void FormWell::s_NewCol(QStringList listdt)
QString strTrackName = "" + QString::number(columnCount+1); QString strTrackName = "" + QString::number(columnCount+1);
if(strType == "depthObject") if(strType == "depthObject")
strTrackName = "深度"; strTrackName = "深度";
if(strType == "roseObject")
strTrackName = "玫瑰图";
FormTrack *formTrack = NULL; FormTrack *formTrack = NULL;
//总行数 //总行数

View File

@ -145,44 +145,44 @@ RESOURCES += \
RC_FILE = $$PWD/qrc/logplus.rc RC_FILE = $$PWD/qrc/logplus.rc
CONFIG(debug, debug|release){ CONFIG(debug, debug|release){
DESTDIR = ../Bin DESTDIR = ../../Bin
TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀 TARGET = $$join(TARGET,,,d) #为debug版本生成的文件增加d的后缀
} else { } else {
DESTDIR = ../Bin DESTDIR = ../../Bin
TARGET = $$join(TARGET,,,) TARGET = $$join(TARGET,,,)
} }
INCLUDEPATH += ../Slfio/include INCLUDEPATH += ../../Slfio/include
INCLUDEPATH += ../common INCLUDEPATH += ../../common
INCLUDEPATH += ../WellLogUI/include INCLUDEPATH += ../../WellLogUI/include
INCLUDEPATH += ../qtpropertybrowser INCLUDEPATH += ../../qtpropertybrowser
INCLUDEPATH += ../BaseFun/include INCLUDEPATH += ../../BaseFun/include
INCLUDEPATH += ../ConvertorManager/include INCLUDEPATH += ../../ConvertorManager/include
INCLUDEPATH += ../OSGDataModel/include INCLUDEPATH += ../../OSGDataModel/include
INCLUDEPATH += ../OSGFramework/include INCLUDEPATH += ../../OSGFramework/include
INCLUDEPATH += ../DataOutput/include INCLUDEPATH += ../../DataOutput/include
INCLUDEPATH += ../DataMgr/include INCLUDEPATH += ../../DataMgr/include
CONFIG(debug, debug|release){ CONFIG(debug, debug|release){
LIBS += -L../Bin -lBaseFund LIBS += -L../../Bin -lBaseFund
LIBS += -L../Bin -lslfiod LIBS += -L../../Bin -lslfiod
LIBS += -L../Bin -lWellLogUId LIBS += -L../../Bin -lWellLogUId
LIBS += -L../Bin -lqtpropertybrowserd LIBS += -L../../Bin -lqtpropertybrowserd
LIBS += -L../Bin -lConvertorManagerd LIBS += -L../../Bin -lConvertorManagerd
LIBS += -L../Bin -lOSGDataModeld LIBS += -L../../Bin -lOSGDataModeld
LIBS += -L../Bin -lDataOutputd LIBS += -L../../Bin -lDataOutputd
LIBS += -L../Bin/ -lCallPlugind -lHPluginManaged LIBS += -L../../Bin/ -lCallPlugind -lHPluginManaged
LIBS += -L../Bin/ -lDataMgrd LIBS += -L../../Bin/ -lDataMgrd
#-lCallManaged #-lCallManaged
} else { } else {
LIBS += -L../Bin -lBaseFun LIBS += -L../../Bin -lBaseFun
LIBS += -L../Bin -lslfio LIBS += -L../../Bin -lslfio
LIBS += -L../Bin -lWellLogUI LIBS += -L../../Bin -lWellLogUI
LIBS += -L../Bin -lqtpropertybrowser LIBS += -L../../Bin -lqtpropertybrowser
LIBS += -L../Bin -lConvertorManager LIBS += -L../../Bin -lConvertorManager
LIBS += -L../Bin -lOSGDataModel LIBS += -L../../Bin -lOSGDataModel
LIBS += -L../Bin -lDataOutput LIBS += -L../../Bin -lDataOutput
LIBS += -L../Bin/ -lCallPlugin -lHPluginManage LIBS += -L../../Bin/ -lCallPlugin -lHPluginManage
LIBS += -L../Bin/ -lDataMgr LIBS += -L../../Bin/ -lDataMgr
#-lCallManage #-lCallManage
} }

View File

@ -368,6 +368,7 @@ void MainWindowCurve::initToolBar()
//connect(m_newAc2, &QAction::triggered, this, &MainWindowCurve::s_NewWell); //connect(m_newAc2, &QAction::triggered, this, &MainWindowCurve::s_NewWell);
connect(m_depthAc, &QAction::triggered, this, &MainWindowCurve::s_NewDepth); connect(m_depthAc, &QAction::triggered, this, &MainWindowCurve::s_NewDepth);
connect(m_pinlvAc, &QAction::triggered, this, &MainWindowCurve::s_pinLvAc); 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_compileAc, &QAction::triggered, this, &MainWindow::s_AddOne);
// connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage); // connect(m_runAc, &QAction::triggered, this, &MainWindow::s_SaveImage);
// connect(m_debugAc, &QAction::triggered, this, &MainWindow::s_DrawImg); // 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); 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) void MainWindowCurve::loadStyle(const QString &qssFile)
{ {
//加载样式表 //加载样式表
@ -733,68 +799,15 @@ void MainWindowCurve::s_NewDepth()
void MainWindowCurve::s_pinLvAc() void MainWindowCurve::s_pinLvAc()
{ {
int column = -1;
int nW = 160; int nW = 160;
QString strSlfName = ""; QStringList sret = this->insertCol(nW);
QString strLeft = m_leftWidgets->getLeftTreeString(); if(sret.length() <= 0)
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; 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; QStringList dt;
dt << m_strUuid; dt << m_strUuid;
dt << strWellName; dt << sret.at(0);
dt << strSlfName; dt << sret.at(1);
dt << ""; dt << "";
dt << "plObject"; dt << "plObject";
dt << QString::number(nW); dt << QString::number(nW);
@ -847,6 +860,24 @@ void MainWindowCurve::s_NewGanZhuangTu()
emit CallManage::getInstance()->sig_NewTrack(m_strUuid, strWellName, strSlfName, "杆状图", "ganzhuangtuObject", nW); 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() void MainWindowCurve::s_Jykt()
{ {

View File

@ -85,6 +85,9 @@ public:
void initMainToolBar(); void initMainToolBar();
void initToolBar(); void initToolBar();
// 返回 strWellName << strSlfName
QStringList insertCol(int nW);
//停靠 //停靠
void dockLayout(); void dockLayout();
@ -110,6 +113,7 @@ public slots:
void s_pinLvAc(); // 频率统计 void s_pinLvAc(); // 频率统计
void s_NewGanZhuangTu(); // 杆状图 void s_NewGanZhuangTu(); // 杆状图
void s_roseAc(); // 玫瑰图
void s_Jykt(); // 井眼垮塌矢量图 void s_Jykt(); // 井眼垮塌矢量图
void s_Denv(); // 井斜方位图 void s_Denv(); // 井斜方位图
void s_DrawImage(); // 图像 成图 void s_DrawImage(); // 图像 成图

View File

@ -24,7 +24,10 @@ QMyCustomPlot::QMyCustomPlot(QWidget *parent, QString strSlfName, QString strWel
setObjectName("QMyCustomPlot"); setObjectName("QMyCustomPlot");
//this->setOpenGl(true);//不开启,电脑不支持会卡 //this->setOpenGl(true);//不开启,电脑不支持会卡
this->setNotAntialiasedElements(QCP::aeAll); // 关闭所有抗锯齿 // this->setNotAntialiasedElements(QCP::aeAll); // 关闭所有抗锯齿
// 开启抗锯齿
this->setAntialiasedElement(QCP::aeAll);
//jyl //jyl
if(g_iShow==1) if(g_iShow==1)