Получить позицию x,y элемента в QCustomplot

Доброе утро всем, у меня есть код на C++- создатель QT, этот код представляет собой график QCustomplot с несколькими пунктами.

Как мы можем видеть на картинке, когда я нажимаю на точку (эта точка является QCPItemTracer), я получаю позицию x и y, но моя проблема в том, что если я щелкаю в левой части точки, я получаю значение, и если я нажимаю на с правой стороны я получаю другое значение, то есть среднее значение в моем коде я использовал положение мыши над точкой (e->pos().x() и e->pos().y()). для меня я хочу, когда я нажимаю на эту точку, я получаю те же х и у, что и был создан. это код, который я использовал, чтобы получить значение.

void MainWindow::click(QCPAbstractItem *item, QMouseEvent *e)

{

  if (e->button() == Qt::LeftButton && qobject_cast<QCPItemTracer *>(item))
  {

      QCustomPlot* customPlot = qobject_cast<QCustomPlot*>(sender());

      int x = customPlot->xAxis->pixelToCoord(e->pos().x());
      int y = customPlot->yAxis->pixelToCoord(e->pos().y());
      textItem->setText(QString("(%1, %2)").arg(x).arg(y));
      textItem->position->setCoords(QPointF(x, y));
      textItem->setFont(QFont(font().family(), 10));
      customPlot->replot();

    return;
  }

Я надеюсь, что кто-то может мне помочь. Спасибо

0 ответов

Другие вопросы по тегам