F:\qttt\TEST\mainwindow.cpp:64: error: No viable conversion from 'qint64' (aka 'long long') to 'QDateTime'
时间: 2023-12-22 16:03:25 浏览: 145
这个错误提示是因为你在将一个 qint64 类型的数据转换为 QDateTime 类型时出错了。QDateTime 类型的构造函数需要传入一个合法的日期时间参数,而 qint64 类型的数据并不符合这个要求。
你可以使用 QDateTime 类型的 fromMSecsSinceEpoch() 函数来将 qint64 类型的数据转换为 QDateTime 类型的日期时间。例如:
```cpp
qint64 timestamp = 1632089481000; // 一个 qint64 类型的时间戳
QDateTime datetime = QDateTime::fromMSecsSinceEpoch(timestamp);
```
这样就可以将 qint64 类型的时间戳转换为 QDateTime 类型的日期时间了。
相关问题
axisX->setRange(time.addSecs(-LinechartX1).toMSecsSinceEpoch(),time.toMSecsSinceEpoch())F:\qttt\TEST\mainwindow.cpp:63: error: No viable conversion from 'qint64' (aka 'long long') to 'QDateTime'如何解决;
这个错误提示是因为 `time.addSecs(-LinechartX1).toMSecsSinceEpoch()` 返回的是 `long long` 类型的时间戳,而 `setRange()` 函数需要传入的是 `QDateTime` 类型的时间。
你可以将 `long long` 类型的时间戳转换为 `QDateTime` 类型,然后再传入 `setRange()` 函数中。可以使用 `QDateTime::fromMSecsSinceEpoch()` 函数来实现这个转换,示例如下:
```cpp
QDateTime dateTime = QDateTime::fromMSecsSinceEpoch(time.addSecs(-LinechartX1), Qt::UTC);
axisX->setRange(dateTime, time);
```
这样就可以解决这个问题了。
xAxis->setRange(0, QDateTime::currentMSecsSinceEpoch());F:\qttt\TEST\mainwindow.cpp:80: error: No viable conversion from 'int' to 'QDateTime'
这个错误是由于你试图将一个整数类型的值转换为QDateTime类型,但这是不可行的。QDateTime::currentMSecsSinceEpoch()函数返回一个64位整数表示当前时间的毫秒数,而xAxis->setRange()函数的第二个参数需要是QDateTime类型的值。你可以将QDateTime::fromMSecsSinceEpoch()函数应用于QDateTime::currentMSecsSinceEpoch()的返回值,将其转换为QDateTime类型,然后将其传递给xAxis->setRange()函数。例如,你可以尝试以下代码:
```
qint64 now = QDateTime::currentMSecsSinceEpoch();
xAxis->setRange(0, QDateTime::fromMSecsSinceEpoch(now));
```
这将将当前时间的毫秒数转换为QDateTime类型,并将其传递给xAxis->setRange()函数。如果你仍然无法解决问题,请提供更多的代码或上下文信息,以便更好地帮助你解决问题。
阅读全文