我正在尝试呈现两个图表,除了Y数据之外,它们基本上是相同的。这是代码
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);正如您所看到的,除了数据和标题之外,这两个图表都是使用完全相同的代码创建的。然而,这就是结果

我已经打印了values3,它是正确的。此外,如果我将values2数据传递给它,它会工作,并且两个图表看起来完全相同。values3值超过10000,这会是问题所在吗?
发布于 2021-01-05 06:44:09
我发现了问题,但很奇怪...问题是所有的数据都是完全相同的,显然,如果所有的数据都是相同的,它就不会呈现任何东西……我猜这是因为它将范围计算为0,然后它不能显示任何内容……
编辑:实际上,如果我手动设置图形的范围,它会很好地显示数据。
https://stackoverflow.com/questions/65557156
复制相似问题