2013-02-07 20 views
2

我有一些QWT做一些小測試程序的經驗,但現在我需要做一些專業。QWT zoomer加panner與連續replot

我有一個情節,我需要做縮放和平移。我安裝了一個非常好的縮放工具,並添加了一個panner,但是當我放大縮放區域時,在縮放結束時replot工作正常,但是在移動過程中,我只能看到最後一個重複圖樣的圖像,我有空白的圖像。無論如何,我可以讓它在移動時顯示持續更新的圖像(如護目鏡地圖)?我意識到谷歌地圖只是一個JPG圖片,所以它不一樣,但如果我能做到這一點,它看起來會更乾淨。謝謝。

回答

0

這可能會實現...

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; 
    } 
}; 

現在使用tihs代替PlotPanner