Hello everyone! I have a special class for building graphs, but when i want to add it on scrollArea, i have some issues. Graphs are very small and if i want to print 50 graphs, i will see something like that: "They are pressed against each other and nothing is visible, but i want each graph to be with normal height and stretch across the entire width of the screen.


Graph class

#include "graphbuilder.h"

GraphBuilder::GraphBuilder(QWidget* parent)
    : QWidget(parent)
{
    _customPlot = new QCustomPlot(this);
}

GraphBuilder::~GraphBuilder()
{
    delete _customPlot;
}


void GraphBuilder::build(QMap<QString, QVector<double>>& position, const QString& header, const QVector<QTime>& time)
{
    QVector<double> timeData;
    QVector<double> positionData;

    for (int i = 0; i < time.size(); ++i)
    {
        timeData.append(time[i].msecsSinceStartOfDay());

    }
    positionData = position[header];

    _customPlot->addGraph();
    _customPlot->graph()->setData(timeData, positionData);
    _customPlot->graph()->setPen(QPen(QColor("green")));


    QSharedPointer<QCPAxisTickerDateTime> dateTicker(new QCPAxisTickerDateTime);
    dateTicker->setDateTimeFormat("hh:mm:ss.zzz");
    _customPlot->xAxis->setTicker(dateTicker);
    _customPlot->xAxis->setLabel("Time");
    _customPlot->yAxis->setLabel("Position");



    QCPTextElement *title = new QCPTextElement(_customPlot);
    title->setText(header);
    title->setFont(QFont("sans", 12, QFont::Bold));
    _customPlot->plotLayout()->insertRow(0);
    _customPlot->plotLayout()->addElement(0, 0, title);


    _customPlot->setInteraction(QCP::iRangeZoom, true);
    _customPlot->setInteraction(QCP::iRangeDrag, true);


    _customPlot->setFixedSize(1200, 900);
//    _customPlot->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    _customPlot->rescaleAxes();
    _customPlot->replot();
}


void MainWindow::printGraph()
{
    QMap<QString, QVector<double>> position = controller->getPosition();
    // qDebug() << position;
    QStringList headers = controller->getHeaders();
    // qDebug() << headers;
    QVector<QTime> time = controller->getTime();
    // qDebug() << time;
    for (int i = 0; i < 50; ++i)
    {
        GraphBuilder* graph = new GraphBuilder();
        graph->build(position, headers[3], time);
        ui->graphic->addWidget(graph);
    }
}