У меня есть QWT-график в моем приложении. Я хочу показать небольшую подсказку, чтобы показать значение точки, в которой указатель мыши находится на кривой. Я обнаружил, что для этого мне нужно использовать QwtPlotPicker, но не смог найти подходящий пример для реализации этого в моем коде. Я новичок в Qwt, поэтому было бы здорово, если бы кто-нибудь мог помочь мне решить эту проблему.
Спасибо, Ракеш.
Автор сам говорит Вот:
QwtPlotPicker дает вам текущую позицию мыши (в координатах экрана и графика). Тогда вам нужно найти ближайшие точки ваших кривых. Вы можете использовать QwtPlotCurve :: closestPoint (), но в большинстве случаев вы можете найти гораздо более быструю реализацию в зависимости от характеристик ваших данных.
Когда вам нужно сравнить положение мыши с линиями между точками, вам нужно положение этих точек в пикселях (используйте QwtPlot :: canvasMap).
Может быть, поможет просмотр CanvasPicker из примера eventfilter.
Я реализовал это в своем собственном классе, который является подклассом 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&)));
Теперь в моем классе (где указатель this) я должен реализовать слот onSelected(const QPointF&)
который даст координаты участка.
Других решений пока нет …