2021年1月3日星期日

Qtcharts does not render data

I am trying to render 2 charts, that are basically the same, except for the Y data. This is the code

QtCharts::QLineSeries *cpuSeries = new QtCharts::QLineSeries();          QtCharts::QLineSeries *ramSeries = new QtCharts::QLineSeries();            QString string;          while((string = in.readLine()) != nullptr){              QStringList values = string.split(QLatin1Char(';'));              QDateTime moment = QDateTime::fromString(values[0], "yyyy:MM:dd:hh:mm:ss");                cpuSeries -> append(moment.toMSecsSinceEpoch(), values[2].toDouble());              ramSeries -> append(moment.toMSecsSinceEpoch(), values[3].toDouble());            }            fileIO.close();          QtCharts::QChart *cpuChart = new QtCharts::QChart();          QtCharts::QChart *ramChart = new QtCharts::QChart();          cpuChart -> addSeries(cpuSeries);          ramChart -> addSeries(ramSeries);          cpuChart -> legend() -> hide();          ramChart -> legend() -> hide();          cpuChart -> setTitle("Cpu usage over time");          ramChart -> setTitle("Ram usage over time");              QtCharts::QDateTimeAxis *cpuaxisX = new QtCharts::QDateTimeAxis;          cpuaxisX->setTickCount(10);          cpuaxisX->setFormat("dd-MM hh:mm");          cpuaxisX->setTitleText("Date");            QtCharts::QDateTimeAxis *ramaxisX = new QtCharts::QDateTimeAxis;          ramaxisX->setTickCount(10);          ramaxisX->setFormat("dd-MM hh:mm");          ramaxisX->setTitleText("Date");              cpuChart -> addAxis(cpuaxisX, Qt::AlignBottom);          cpuSeries -> attachAxis(cpuaxisX);            ramChart -> addAxis(ramaxisX, Qt::AlignBottom);          ramSeries ->attachAxis(ramaxisX);            QtCharts::QValueAxis *cpuaxisY = new QtCharts::QValueAxis;          cpuaxisY->setLabelFormat("%f");          cpuaxisY->setTitleText("Percentage");            QtCharts::QValueAxis *ramaxisY = new QtCharts::QValueAxis;          ramaxisY->setLabelFormat("%f");          ramaxisY->setTitleText("Mb");                cpuChart->addAxis(cpuaxisY, Qt::AlignLeft);          cpuSeries->attachAxis(cpuaxisY);          ramChart->addAxis(ramaxisY, Qt::AlignLeft);          ramSeries->attachAxis(ramaxisY);              QtCharts::QChartView *cpuChartView = new QtCharts::QChartView(cpuChart);          QtCharts::QChartView *ramChartView = new QtCharts::QChartView(ramChart);          cpuChartView -> setRenderHint(QPainter::Antialiasing);          ramChartView -> setRenderHint(QPainter::Antialiasing);              QGridLayout *cpuGrid  = ui -> centralwidget -> findChild<QGridLayout *>("cpuGrid");          QGridLayout *ramGrid = ui -> centralwidget -> findChild<QGridLayout *>("ramGrid");              cpuGrid -> addWidget(cpuChartView);          ramGrid -> addWidget(ramChartView);  

As you can see, both charts are created using the exact same code, except for the data and titles. However, this is the result

enter image description here

I have printed values[3], and it is correct. Also, if I pass it the values[2] data, it works, and both charts look exactly the same. The values[3] values are over 10000, could that be the problem?

https://stackoverflow.com/questions/65557156/qtcharts-does-not-render-data January 04, 2021 at 10:57AM

没有评论:

发表评论