Подсказка для отображения значений графика в Qwt

У меня есть QWT-график в моем приложении. Я хочу показать небольшую подсказку, чтобы показать значение точки, в которой указатель мыши находится на кривой. Я обнаружил, что для этого мне нужно использовать QwtPlotPicker, но не смог найти подходящий пример для реализации этого в моем коде. Я новичок в Qwt, поэтому было бы здорово, если бы кто-нибудь мог помочь мне решить эту проблему.

Спасибо, Ракеш.

7

Решение

Автор сам говорит Вот:

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&) который даст координаты участка.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]