Доброе утро всем, у меня есть код на c ++ - создатель QT, этот код представляет собой график QCustomplot с несколькими точками.
![](https://i.stack.imgur.com/osdvh.png)
Как мы можем видеть на картинке, когда ящелкните в точке (эта точка - 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;
}
Я надеюсь, что кто-то может мне помочь.Спасибо