首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >QLineSeries和QDateTimeAxis -图表不显示值

QLineSeries和QDateTimeAxis -图表不显示值
EN

Stack Overflow用户
提问于 2018-09-26 05:39:52
回答 1查看 2.2K关注 0票数 2

我正在尝试实现像https://doc.qt.io/qt-5.9/qtcharts-datetimeaxis-example.html这样的东西。

在一个方法中,我有这样的代码

代码语言:javascript
复制
QDateTime past = QDateTime::currentDateTime().addMonths(-10);
QDateTime now = QDateTime::currentDateTime();
qreal pastvalue = 4;
qreal nowvalue = 4;
axisY = new QValueAxis();
axisX= new QDateTimeAxis();
chart = new QChart();
series = new QLineSeries();
/*Y*/
axisY->setLabelFormat("%i");
axisY->setTitleText("Numero dispositivi");
axisY->setMin(0);
axisY->setMax(5);
/*X*/
axisX->setTickCount(2);
axisX->setMin(past);
axisX->setMax(now);
axisX->setFormat("dd-MM-yyyy h:mm:ss"); 
/*series/*
series->attachAxis(axisX);
series->attachAxis(axisY);
series->append(past.toSecsSinceEpoch(),pastvalue);
series->append(past.toSecsSinceEpoch(),nowvalue);
/*chart*/
chart->legend()->hide();
chart->setTitle("Dati filtrati durante il periodo temporale");
chart->addAxis(axisY, Qt::AlignLeft);
chart->addAxis(axisX, Qt::AlignBottom);
chart->addSeries(series);

chartView = new QChartView(chart);
ui->verticalLayout->addWidget(chartView);

我不明白为什么不显示这些值。

我不知道出了什么问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 06:09:32

您的代码包含以下错误:

在将系列附加到系列之前,您必须使用toSecsSinceEpoch().

  • You而不是toMSecsSinceEpoch()。在将轴附加到系列之前,必须先将轴添加到QChart

  • series->append(past.toSecsSinceEpoch(),nowvalue);更改为

建议您设置刻度,以便仅显示整点,因为例如,不适当的值将显示在垂直轴上,或者设置为具有一定小数位数的浮动值,在下图中,我使用%i显示了结果:

正如我们在上图中看到的,4非常接近3,比5更远,而不是等距离,因此在我提出的解决方案中,您将使用%.2f:

代码语言:javascript
复制
QDateTime past = QDateTime::currentDateTime().addMonths(-10);
QDateTime now = QDateTime::currentDateTime();
qreal pastvalue = 4;
qreal nowvalue = 4;
axisY = new QValueAxis();
axisX= new QDateTimeAxis();
chart = new QChart();
series = new QLineSeries();
/*Y*/
axisY->setLabelFormat("%.2f");
axisY->setTitleText("Numero dispositivi");
axisY->setMin(0);
axisY->setMax(5);
/*X*/
axisX->setTickCount(2);
axisX->setMin(past);
axisX->setMax(now);
axisX->setFormat("dd-MM-yyyy h:mm:ss");
/*series*/

series->append(past.toMSecsSinceEpoch(),pastvalue);
series->append(now.toMSecsSinceEpoch(),nowvalue);
/*chart*/
chart->legend()->hide();
chart->setTitle("Dati filtrati durante il periodo temporale");
chart->addAxis(axisY, Qt::AlignLeft);
chart->addAxis(axisX, Qt::AlignBottom);
chart->addSeries(series);
series->attachAxis(axisX);
series->attachAxis(axisY);

chartView = new QChartView(chart);
ui->verticalLayout->addWidget(chartView);

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

https://stackoverflow.com/questions/52507050

复制
相关文章

相似问题

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