2

シンボルを描画してプロットに添付するコードがあります。ここで、ユーザーが編集できるようにシンボルを選択するコードを記述できるように、シンボルで自動的に作成された外接する四角形があるかどうかを調べたいと思います。たとえば、削除するために選択します。

qwt_plot_marker.h で boundingRect() メソッドを見たことがあります。次のコードが実装されている場合、これを使用して作成された四角形があるかどうかを判断するにはどうすればよいですか?

void DataPointMarker::draw(QPainter *p, 
const QwtScaleMap &xMap, const QwtScaleMap &yMap,
const QRect &) const
{
  const int posX = xMap.transform(m_positionX);
  const int posY = yMap.transform(m_positionY);

p->save();

symbol().draw(p, posX, posY);

p->restore();

シンボルは別の場所で定義されています。前もって感謝します。

4

1 に答える 1

2

boundingRect関数は、シリーズのすべてのポイントが収まる十分な大きさの四角形を返します。これは自動スケーリングに必要であり、探しているものではありません。必要なのは、フォーカスまたは選択インジケーターのようなものです。event_filterqwt に同梱されているサンプルを参照してください。ポイント/マーカーを選択して移動することができます。

qwt サンプル ディレクトリは、(少なくとも Windows では) qwt のベース ディレクトリにありますqwt-6.0\examples。バイナリは にありqwt-6.0\examples\binます。ファイルを調べてINSTALL、バイナリのビルド方法を確認してください。

于 2012-10-03T20:01:49.573 に答える