大家早上好,我在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;
}
我希望有人能帮助我。 谢谢