アプリケーションにqwtプロットがあります。曲線上でマウスがポイントされているポイントの値を示すために、小さなツールチップを表示したいと思います。これにはQwtPlotPickerを使用する必要があることがわかりましたが、コードにこれを実装するための適切な例が見つかりませんでした。私はQwtを初めて使用するので、誰かがこの問題の解決を手伝ってくれるといいですね。
ありがとう、Rakesh。
著者自身がここで言います:
QwtPlotPickerは、マウスの現在の位置(画面およびプロット座標)を提供します。次に、曲線の最も近い点を見つける必要があります。QwtPlotCurve :: closestPoint()を使用できますが、ほとんどの場合、データの特性に応じて、はるかに高速な実装を見つけることができます。マウスの位置をポイント間の線と比較する必要がある場合は、これらのポイントのピクセル位置が必要です(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&)
、プロット座標を与えるスロットを実装する必要があります。