c++ - QDateTimeAxis (QtCharts) 中的错误值

标签 c++ qt qdatetime qtcharts

我正在使用 QtCharts 来显示模拟数据。模拟从零时间开始,但我的图表轴似乎总是从 19 小时开始。这让我很困惑。图表的设置很简单:

std::vector<SimData> data;

// ... Populate data

auto series = new QLineSeries();

for(auto i : data)
{
  // Append time in milliseconds and a value
  series->append(i.msTime, i.value);
}

this->legend()->hide();

this->addSeries(series);

this->axisX = new QDateTimeAxis;
this->axisX->setTickCount(10);
this->axisX->setFormat("HH:mm:ss");
this->axisX->setTitleText("Sim Time");
this->axisX->setMin(QDateTime());
this->addAxis(this->axisX, Qt::AlignBottom);
series->attachAxis(this->axisX);

this->axisY = new QValueAxis;
this->axisY->setLabelFormat("%i");
this->axisY->setTitleText(x->getID().c_str());
this->addAxis(this->axisY, Qt::AlignLeft);
series->attachAxis(this->axisY);

如果我在没有数据的情况下运行,但只显示图表,我会得到:

QtChart with QDateTimeAxis 如果我添加数据,从时间 0 开始,数据总量是正确的,但时间仍然从 19:00:00 开始。为什么时间不是从 00:00:00 开始?

QtChart with QDateTimeAxis

最佳答案

我相信这是因为您位于东海岸 (UTC-5),因此 0 代表 UTC-5 的凌晨 12 点 (2400),而 0ms 代表提前 5 小时(前一天 1900)。我遇到了同样的问题,将我的时区设置为 UTC(在 ubuntu 下)并且 voila 轴从 0 小时而不是 19 开始。

关于c++ - QDateTimeAxis (QtCharts) 中的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45326462/

相关文章:

c++ - 如何突出显示 QListWidgetItem 文本中的特定字母?

qt - QDateTime自定义格式转义符号

c++ - QDateTime 小部件在 Mac OS X 下看起来很糟糕

c++ - float 的长度在 32 和 40 位之间变化

c++ - 为什么我的代码打印 r 值 2 次而不是 rvalue 和 lvalue?

c++ - 为什么我不能分配这个 Qt 属性?

c++ - QDateTimeEdit选择每月的最后一天

c++ - 非常大的 float 会导致不确定性吗?

c++ - 二进制、八进制、十六进制转十进制程序

c++ - 将字符串(或任何其他参数)传递给 QWidget 构造函数