gpt4 book ai didi

c++ - Qt 图表 - 如何在 x 和 y 轴上显示特定点值?

转载 作者:搜寻专家 更新时间:2023-10-31 02:13:30 26 4
gpt4 key购买 nike

我有一个带有 QLineSeries 的图表,我想显示鼠标所在点的 x 和 y 值。我想我可以处理检索鼠标点的问题,但我不知道如何用 Qt Charts 显示它。

我没有在 QValueAxis 和其他函数中看到执行此操作的函数。

点不一定要显示在坐标轴上,直接在鼠标下方即可。

最佳答案

我找到了一种无需过多绘图的方法:

void StatisticsChartView::mouseMoveEvent(QMouseEvent * event)
{
/* Setting the mouse position label on the axis from value to position */
qreal x = (event->pos()).x();
qreal y = (event->pos()).y();

qreal xVal = _chart->mapToValue(event->pos()).x();
qreal yVal = _chart->mapToValue(event->pos()).y();

qreal maxX = axisX->max();
qreal minX = axisX->min();
qreal maxY = axisY->max();
qreal minY = axisY->min();

if (xVal <= maxX && xVal >= minX && yVal <= maxY && yVal >= minY)
{
QPointF xPosOnAxis = _chart->mapToPosition(QPointF(x, 0));
QPointF yPosOnAxis = _chart->mapToPosition(QPointF(0, y));

/* m_coordX and m_coordY are `QGraphicsSimpleTextItem` */
m_coordX->setPos(x, xPosOnAxis.y() + 5);
m_coordY->setPos(yPosOnAxis.x() - 27, y);

/* Displaying value of the mouse on the label */
m_coordX->setText(QString("%1").arg(xVal, 4, 'f', 1, '0'));
m_coordY->setText(QString("%1").arg(yVal, 4, 'f', 1, '0'));
}

QGraphicsView::mouseMoveEvent(event);
}

它将沿两个轴显示值

关于c++ - Qt 图表 - 如何在 x 和 y 轴上显示特定点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41281693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com