【问题标题】:QTime behaving different in linux and windows platformsQTime 在 linux 和 windows 平台上表现不同
【发布时间】:2020-11-24 18:23:12
【问题描述】:

我有在 linux 和 windows 中运行的相同 Qt 代码。但它在每种情况下的作用都不同。 在 linux 中它的行为是正确的,但在 windows 中却不是。

您可以看到在 Windows 平台中它返回空字符串,而在 linux 平台中它的行为与预期一致。可能是什么原因?

【问题讨论】:

  • 你在这两种情况下都使用相同版本的 Qt 吗?
  • 如果您使用qDebug 或类似名称输出,strTemp 是什么?调试器显示的值(我假设这里就是这种情况)可能会误导高度优化的代码。
  • 请提供minimal reproducible example 文字而非图片
  • 我很惊讶 Linux 版本可以正常工作:doc.qt.io/qt-5/qtime.html#QTime-1
  • @AlanBirtles 初始化 QTime time(0,0) 后;它工作正常。谢谢

标签: c++ linux windows qt qtime


【解决方案1】:

QTime 的默认构造函数产生一个invalid 时间,大多数在无效时间上的操作将失败或返回另一个无效时间。调用 addSecs 仍然会给您留下无效时间,而在无效时间调用 toString 会返回一个空字符串。

要构造一个午夜的QTime,您需要使用:

QTime time(0,0);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 2011-08-09
    • 2022-06-13
    • 1970-01-01
    • 2011-07-16
    • 2015-07-18
    • 2013-01-26
    相关资源
    最近更新 更多