源程序:FunCurve.h
#ifndef FUNCURVE_H
#define FUNCURVE_H
#include <QMainWindow>
#include <qwt_plot_curve.h>
#include <QVector>
#include <qwt_symbol.h>
namespace Ui {
class FunCurve;
}
class FunCurve : public QMainWindow
{
Q_OBJECT
public:
explicit FunCurve(QWidget *parent = 0);
~FunCurve();
private:
Ui::FunCurve *ui;
QwtPlotCurve * curve;
QVector<double> xData;
QVector<double> yData;
};
#endif // FUNCURVE_H
FunCurve.cpp
#include "funcurve.h"
#include "ui_funcurve.h"
FunCurve::FunCurve(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::FunCurve)
{
ui->setupUi(this);
ui->plot->setCanvasBackground(Qt::green);
curve = new QwtPlotCurve();
curve->attach(this->ui->plot);
ui->plot->setAxisScale(QwtPlot::xBottom, 0.0, 10.0);
ui->plot->setAxisScale(QwtPlot::yLeft, 0.0, 10.0);
ui->plot->setAxisTitle(QwtPlot::xBottom,"x -->");
ui->plot->setAxisTitle(QwtPlot::yLeft,"y -->");
for(int x=0;x<100;x++)
{
xData.append((double)x);
yData.append((double)x);
}
curve->setSymbol(new QwtSymbol(QwtSymbol::Cross, Qt::NoBrush,
QPen(Qt::black), QSize(5, 5) ) );
curve->setPen(QColor(Qt::darkGreen));
curve->setStyle(QwtPlotCurve::Lines);
curve->setCurveAttribute(QwtPlotCurve::Fitted);
/*
d_curves[i].setSymbol(new QwtSymbol(QwtSymbol::Ellipse, Qt::yellow,
QPen(Qt::blue), QSize(5, 5) ) );
d_curves[i].setPen(QColor(Qt::red));
d_curves[i].setStyle(QwtPlotCurve::Sticks);
i++;
d_curves[i].setPen(QColor(Qt::darkBlue));
d_curves[i].setStyle(QwtPlotCurve::Lines); //*qwtexample中的实例,画图样式
i++;
d_curves[i].setPen(QColor(Qt::darkBlue));
d_curves[i].setStyle(QwtPlotCurve::Lines);
d_curves[i].setRenderHint(QwtPlotItem::RenderAntialiased);
i++;
d_curves[i].setPen(QColor(Qt::darkCyan));
d_curves[i].setStyle(QwtPlotCurve::Steps);
i++;
d_curves[i].setSymbol(new QwtSymbol(QwtSymbol::XCross, Qt::NoBrush,
QPen(Qt::darkMagenta), QSize(5, 5) ) );
d_curves[i].setStyle(QwtPlotCurve::NoCurve);
*/
curve->setRawSamples(&xData[0], &yData[0], xData.size());
ui->plot->replot();
}
FunCurve::~FunCurve()
{
delete ui;
}
效果如图: