首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qtcharts不呈现数据

Qtcharts不呈现数据
EN

Stack Overflow用户
提问于 2021-01-04 10:57:05
回答 1查看 44关注 0票数 0

我正在尝试呈现两个图表,除了Y数据之外,它们基本上是相同的。这是代码

代码语言:javascript
复制
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,这会是问题所在吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-05 06:44:09

我发现了问题,但很奇怪...问题是所有的数据都是完全相同的,显然,如果所有的数据都是相同的,它就不会呈现任何东西……我猜这是因为它将范围计算为0,然后它不能显示任何内容……

编辑:实际上,如果我手动设置图形的范围,它会很好地显示数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65557156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档