前言:要求必须配置有QwtPlot,否则提供的代码无法正常运行。
1.基于QwtPlot编写新的函数类PlotLines,代码如下:
h文件
#ifndef PLOTLINES_H
#define PLOTLINES_H
#include<qwt_plot.h>
#include <qwt_plot_layout.h>
#include <qwt_plot_canvas.h>
#include <qwt_plot_renderer.h>
#include <qwt_plot_grid.h>
#include <qwt_plot_histogram.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_zoomer.h>
#include <qwt_plot_panner.h>
#include <qwt_plot_magnifier.h>
#include <qwt_legend.h>
#include <qwt_legend_label.h>
#include <qwt_column_symbol.h>
#include <qwt_series_data.h>
#include <qpen.h>
#include <qwt_symbol.h>
#include <qwt_picker_machine.h>
#include<vector>
using namespace std;
class PlotLines : public QwtPlot
{
Q_OBJECT
public:
explicit PlotLines(QWidget *parent = 0);
void fucSetLineMsg(int num,vector<QPolygonF> lineData,vector<QString> lineName);
void fucUpdate();
void fucSetTitle(QString in) {this->setTitle(in);}
void fucSetSize(int width,int height) {this->resize(width,height);}
private Q_SLOTS:
//点击图例,显示相应的曲线
void showItem(const QVariant &itemInfo, bool on);
private:
void fucInit();
void fucInitVec();
int gloLineNum;
vector<QPolygonF> gloLineData;
vector<QwtPlotCurve *> gloLine;
vector<QString> gloLineName;
vector<QColor> gloColor;
Q