工具提示以Qwt显示绘图值

时间:2012-10-25 09:55:46

标签: c++ qwt

我的应用程序中有一个qwt图。我想展示一个小工具提示,以显示鼠标指向曲线的点的值。我发现我必须使用QwtPlotPicker,但在我的代码中找不到任何正确的示例来实现它。我是Qwt的新手,所以如果有人能帮我解决这个问题会很棒。

谢谢,拉克什。

1 个答案:

答案 0 :(得分:4)

作者自己说here

  

QwtPlotPicker为您提供鼠标的当前位置(在屏幕和绘图坐标中)。然后你需要找到曲线的最近点。您可以使用QwtPlotCurve :: nearestPoint(),但在大多数情况下,您可以根据数据的特征找到更快的实现。   当您需要将鼠标位置与点之间的线进行比较时,您需要这些点的像素位置(使用QwtPlot :: canvasMap)。   也许看一下eventfilter示例的CanvasPicker有帮助。

我在自己的类中实现了它,它是QwtPlot的子类。在构造函数中,我有以下内容:

QwtPlotPicker* plotPicker = new QwtPlotPicker(this->xBottom, this->yLeft, QwtPicker::CrossRubberBand, QwtPicker::AlwaysOn, this->canvas());
QwtPickerMachine* pickerMachine = new QwtPickerClickPointMachine();
plotPicker->setStateMachine(pickerMachine);
connect(plotPicker, SIGNAL(selected(const QPointF&)), this, SLOT(onSelected(const QPointF&)));

现在在我的班级(这个指针引用的地方)我应该实现插槽onSelected(const QPointF&),它将给出绘图坐标。