.pro ファイルに
CONFIG += qwt
を追記
ヘッダー
plot.h
#ifndef PLOT_H
#define PLOT_H
#include <QMainWindow>
#include <qwt_plot.h>
#include <qwt_legend.h>
#include <qwt_plot_grid.h>
#include <qwt_plot_curve.h>
namespace Ui {
class Plot;
}
class Plot : public QwtPlot
{
Q_OBJECT
public:
explicit Plot(QWidget *parent = 0);
~Plot();
private:
Ui::Plot *ui;
class QwtPlotCurve *curve;
void plotCurve();
};
#endif // PLOT_H
main.cpp
#include "plot.h" #includeint main(int argc, char *argv[]) { QApplication a(argc, argv); qDebug("%s", "main.cpp"); Plot w; w.show(); return a.exec(); }
#include "plot.h"
#include "ui_plot.h"
Plot::Plot(QWidget *parent) :
QwtPlot(parent),
ui(new Ui::Plot)
{
//ui->setupUi(this);
setTitle( "Plot Demo" );//グラフのタイトル
insertLegend( new QwtLegend() );// 凡例を表示
// y軸
setAxisTitle(QwtPlot::yLeft, "y abc");//タイトル
//setAxisScale( QwtPlot::yLeft, 0.0, 10.0 );//目盛
// x軸
setAxisTitle(QwtPlot::xBottom, "x abc");
// グリッドの設定
QwtPlotGrid *grid = new QwtPlotGrid();
grid->enableXMin(true);
grid->attach( this );
curve = new QwtPlotCurve();
curve->setTitle("sine wave");
curve->setRenderHint(QwtPlotItem::RenderAntialiased);
curve->setPen(QPen(Qt::red));
curve->attach(this);
// 曲線の描画
plotCurve();
curve->attach( this );
resize( 600, 400 );
//setAxisScale( QwtPlot::xBottom, 0.5, 2.0 );//目盛
}
Plot::~Plot()
{
delete ui;
}
void Plot::plotCurve()
{
const int kArraySize = 1000;
double x[kArraySize] = {}; // x
double y[kArraySize] = {}; // y
for (int i = 0; i < kArraySize; ++i) {
x[i] = i/(kArraySize-1.0);
y[i] = sin(2.0*M_PI*x[i]);
}
curve->setSamples(x, y, kArraySize);
}

0 件のコメント:
コメントを投稿