我的应用程序中有一个qwt图。我想展示一个小工具提示,以显示鼠标指向曲线的点的值。我发现我必须使用QwtPlotPicker,但在我的代码中找不到任何正确的示例来实现它。我是Qwt的新手,所以如果有人能帮我解决这个问题会很棒。
谢谢,拉克什。
答案 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&)
,它将给出绘图坐标。