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
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
没有评论:
发表评论