qwt绘制,以及画面缩放、平移操作

来源:互联网 发布:下载淘宝助理免费 编辑:程序博客网 时间:2024/06/01 08:21

本文受了http://blog.csdn.net/lovebird_27/article/details/50440877的启发。

1)代码实现:

qwt的安装请参考我的博客《win8下向qt5.4.1安装 qwt-6.1.2》。我最近重新安装了qt5.5-msvc2012,但是安装步骤与mingw类似。在此不再重复。

pro 文件:

#-------------------------------------------------## Project created by QtCreator 2017-08-09T20:42:45##-------------------------------------------------QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = qwtTEMPLATE = appSOURCES += main.cpp\        mainwindow.cppHEADERS  += mainwindow.hLIBS += -L"C:\Qt\Qt5.5.0\5.5\msvc2012\lib" -lqwtdINCLUDEPATH += "C:\Qt\Qt5.5.0\5.5\msvc2012\include\qwt"include (E:\qwt-6.1.2\qwt-6.1.2\qwt.prf)


头文件:

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <qwt/qwt_plot_curve.h>#include <qwt/qwt_plot_zoomer.h>#include <qwt/qwt_plot_panner.h>#include <qwt/qwt_plot.h>class MainWindow : public QwtPlot{    Q_OBJECTpublic:    MainWindow(QWidget *parent = 0);    ~MainWindow();    QwtPlotCurve        m_curve;    QwtPlotZoomer       m_zoomer;    QwtPlotPanner       m_panner;};#endif // MAINWINDOW_H


cpp文件:

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent)    : QwtPlot(parent), m_curve("X"), m_zoomer(canvas()), m_panner(canvas()){    double time[6] = {1,2,3,4,5,6};    double val[6] = {12.4, 3.3, -23, 8.1, 7.3, -3};    m_curve.setSamples(time, val, 6);    m_curve.setPen(QColor(0,255,0));    m_curve.attach(this);    m_zoomer.setMousePattern(QwtEventPattern::MouseSelect3, Qt::RightButton);    m_zoomer.setZoomBase(true);    m_panner.setMouseButton(Qt::RightButton);    setAutoReplot(true);}MainWindow::~MainWindow(){}


2) 运行结果:

功能一: 将鼠标左键按下,窗体会显示按下位置的坐标;


功能二: 按下鼠标右键并移动,实现平移效果;

功能三: 按下鼠标左键,然后框选感兴趣的区域。则感兴趣区域被放大显示(想要恢复原状,只要按下鼠标右键即可):