Для примера постоим самый простой график в виде линии.
Сначала подключим нужные заголовочные файлы:
#include <qwt/qwt_plot_curve.h> #include <qwt/qwt_plot_grid.h> #include <qwt/qwt_symbol.h>
Добавим сетку:
grid = new QwtPlotGrid;
grid->enableXMin(true);
grid->enableYMin(true);
grid->setMajorPen(QPen(Qt::black,1,Qt::DotLine));
grid->setMinorPen(QPen(Qt::gray,1,Qt::DotLine));
grid->attach(ui->widget);
Определим сам график для прорисовки:
curv = new QwtPlotCurve(QString());
curv->setRenderHint(QwtPlotItem::RenderAntialiased,true);
curv->setPen(QPen(Qt::red));
Добавим маркеры, которые указывают заданные точки:
QwtSymbol *symbol = new QwtSymbol();
symbol->setStyle(QwtSymbol::Ellipse);
symbol->setPen(QColor(Qt::black));
symbol->setSize(5);
curv->setSymbol(symbol);
Зададим переменные:
x << 0 << 100 << 200 << 300 << 400 << 500 << 600;
y << 50 << 150 << 250 << 350 << 450 << 550 << 650;
Перенесем заданные точки на график:
curv->setSamples(x,y);
curv->attach(ui->widget);
ui->widget->replot();
Получилось следующее:

Полный листинг:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <qwt/qwt_plot_curve.h>
#include <qwt/qwt_plot_grid.h>
#include <qwt/qwt_symbol.h>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
QwtPlotCurve *curv;
QwtPlotGrid *grid;
QVector<double> x;
QVector<double> y;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
grid = new QwtPlotGrid;
grid->enableXMin(true);
grid->enableYMin(true);
grid->setMajorPen(QPen(Qt::black,1,Qt::DotLine));
grid->setMinorPen(QPen(Qt::gray,1,Qt::DotLine));
grid->attach(ui->widget);
curv = new QwtPlotCurve(QString());
curv->setRenderHint(QwtPlotItem::RenderAntialiased,true);
curv->setPen(QPen(Qt::red));
QwtSymbol *symbol = new QwtSymbol();
symbol->setStyle(QwtSymbol::Ellipse);
symbol->setPen(QColor(Qt::black));
symbol->setSize(5);
curv->setSymbol(symbol);
x << 0 << 100 << 200 << 300 << 400 << 500 << 600;
y << 50 << 150 << 250 << 350 << 450 << 550 << 650;
curv->setSamples(x,y);
curv->attach(ui->widget);
ui->widget->replot();
}
MainWindow::~MainWindow()
{
delete ui;
}
