Получить позицию x, y элемента в QCustomplot - PullRequest
0 голосов
/ 13 ноября 2018

Доброе утро всем, у меня есть код на 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;
  }

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

...