3

私は QWT でいくつかの小さなテスト プログラムを実行した経験がありますが、今は専門的なものを作成する必要があります。

ズームとパンを行う必要があるプロットがあります。うまく機能するズーマーをインストールしてパナーを追加しますが、ズーム領域をパンすると、パンニングの最後にリプロットが正常に機能しますが、移動中は最後のリプロットからの画像が周りや側面を移動するだけです空の画像があります。とにかく、移動中に継続的に更新される画像を表示できるようにすることはできますか (ゴーグル マップのようなもの)。Google マップは単なる jpg 画像であるため、同じではありませんが、これを行うことができれば、はるかにきれいに見えます。ありがとう。

4

1 に答える 1

2

これはうまくいくかもしれません...

class CustomPanner: public QwtPlotPanner
{

public:
    explicit CustomPanner(QWidget* parent) : QwtPlotPanner(parent){}

virtual bool eventFilter( QObject * object, QEvent * event)
{
    if ( object == NULL || object != parentWidget() )
            return false;

    switch ( event->type() )
    {
        case QEvent::MouseButtonPress:
        {
            widgetMousePressEvent( static_cast<QMouseEvent *>( event ) );
            break;
        }
        case QEvent::MouseMove:
        {
            QMouseEvent * evr = static_cast<QMouseEvent *>( event );
            widgetMouseMoveEvent( evr );
            widgetMouseReleaseEvent( evr  );
            setMouseButton(evr->button(), evr->modifiers());
            widgetMousePressEvent( evr);
            break;
        }
        case QEvent::MouseButtonRelease:
        {
            QMouseEvent * evr = static_cast<QMouseEvent *>( event );
            widgetMouseReleaseEvent( static_cast<QMouseEvent *>( event ) );
            break;
            grab();
        }
        case QEvent::KeyPress:
        {
            widgetKeyPressEvent( static_cast<QKeyEvent *>( event ) );
            break;
        }
        case QEvent::KeyRelease:
        {
            widgetKeyReleaseEvent( static_cast<QKeyEvent *>( event ) );
            break;
        }
        case QEvent::Paint:
        {
            if ( isVisible() )
                return true;
            break;
        }
        default:;
    }

    return false;
   }
};

PlotPanner の代わりに tihs を使用するようになりました

于 2016-10-20T16:44:53.260 に答える