如何将整型变量转换为QTime对象

how to convert integer variable into QTime object

本文关键字:QTime 对象 转换 整型变量      更新时间:2023-10-16

我真的是QT的新东西。这可能是一个愚蠢的问题,但我找不到任何答案。我已经通过qt文档和搜索互联网找到这个问题的答案。

我的问题是,假设有一个"整数变量",其持续时间以秒为单位。我需要那一个转换成QTime对象返回作为一个QTime。我怎么能做到这一点在Qt的创造者??

int seekTime;
int seconds = QTime().secsTo(duration);
seekTime = seconds * bytePos/totalSize;
return seekTime;

我需要返回这个seekTime变量作为QTime对象,我怎么能做到这一点?

提前谢谢…!

应该可以。

QTime t = QTime().addSecs(duration);

这是我试过的一个小程序:

#include <iostream>
#include <QTime>
int main()
{
   int durationInSeconds = 40;
   QTime t = QTime().addSecs(durationInSeconds);
   std::cout << "h: " << t.hour() << ", m: " << t.minute() << " s: " << t.second() << ", ms: " << t.msec() << std::endl;
   return 0;
}

这是我得到的输出:

<>之前H: 0, m: 0 s: 40, ms: 0之前

也可以构造一个QTime来表示秒:

int durationInSeconds = 40;
QTime t(0, 0, durationInSeconds);

更新2

函数secsTo可用于计算两个QTime实例之间的秒差。下面是文档:

int QTime::secsTo (const QTime &t) const

返回从当前时间到t的秒数。如果t早于当前时间,则返回的秒数为负值。

因为QTime测量的是一天内的时间,而一天有86400秒,所以结果总是在-86400到86400之间。

secsTo()不考虑任何毫秒。

假设你有:

QTime t1(0, 1, 0:
QTime t2(0, 0, 45);
int secs = t2.secsTo(t1); // secs should be equal to 15.
secs = t1.secsTo(t2);     // secs should be equal to -15.

希望能稍微澄清一下QTime::secsTo的预期行为