获取项目在QCustomplot中的位置x,y

时间:2018-11-13 09:38:28

标签: c++ qt qt-creator qcustomplot

大家早上好,我在c ++-QT创建者中有一个代码,该代码是具有多个要点的图QCustomplot。

正如我们在图片中看到的那样,当我单击该点(此点是QCPItemTracer)时,我得到了位置x和y,但是我的问题是,如果我单击该点的左侧,我会得到一个值,并且我在右侧单击以获取其他值,这意味着在我的代码中,我将鼠标放在该点上(e-> pos()。x()和e-> pos()。y())。我想要当我单击此点时得到与创建时相同的x和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 个答案:

没有答案