diff --git a/logPlus/TransparentDraggableSwallCore.cpp b/logPlus/TransparentDraggableSwallCore.cpp index a6801e9..7b9312f 100644 --- a/logPlus/TransparentDraggableSwallCore.cpp +++ b/logPlus/TransparentDraggableSwallCore.cpp @@ -295,8 +295,9 @@ void TransparentDraggableSwallCore::setRange(double left_Low, double right_Hight drawOil(left_Low2, right_Hight2, lY1, lY2); - mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(x2+8), - mPlot->yAxis->pixelToCoord(y1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+12)); + int textLength = mstrTitle.size() * m_textWidth; + mItemTitle->position->setCoords(mPlot->xAxis->pixelToCoord(x2+2), + mPlot->yAxis->pixelToCoord(y1+(m_fLeftSpace+m_fTriangleLen)+m_fImageWidth+2+textLength/2.0)); @@ -430,10 +431,12 @@ void TransparentDraggableSwallCore::initRect() // mPixmap_Color->setScaled(true, Qt::IgnoreAspectRatio); // 设置缩放方式 KeepAspectRatio // mPixmap_Color->setLayer("overlay"); // 确保在最上层 + QFont font(QFont("Arial", 6, QFont::Light)); + mItemTitle = new QCPItemText(mPlot); mItemTitle->setText(mstrTitle); //mItemTitle->setBrush(QBrush(Qt::red)); - mItemTitle->setFont(QFont("Arial", 6, QFont::Light)); + mItemTitle->setFont(font); mItemTitle->setColor(Qt::black); mItemTitle->setPositionAlignment(Qt::AlignTop | Qt::AlignHCenter); mItemTitle->position->setType(QCPItemPosition::ptPlotCoords); @@ -441,6 +444,11 @@ void TransparentDraggableSwallCore::initRect() mItemTitle->position->setCoords(0.5, 0); mItemTitle->setLayer("overlay"); + //字体宽度 + QFontMetrics metrics(font); + QString text = "1"; + m_textWidth = metrics.width(text); // 获取文本宽度 + //三角形2边 m_qcpItemLine1 = new QCPItemLine(mPlot); m_qcpItemLine1->setPen(QPen(QColor(0, 0, 0, 200))); diff --git a/logPlus/TransparentDraggableSwallCore.h b/logPlus/TransparentDraggableSwallCore.h index b4172fd..6a5a365 100644 --- a/logPlus/TransparentDraggableSwallCore.h +++ b/logPlus/TransparentDraggableSwallCore.h @@ -110,6 +110,8 @@ public: // float m_fColorWordLen=30;//颜色文字长度 + int m_textWidth = 0; + //鼠标形状 bool m_bArrow = false; bool m_bMoveRect = false;