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

时间:2014-07-04 04:32:15

标签: c++ qt casting

我对这个QT的东西很认真。这可能是一个愚蠢的问题,但我找不到任何答案。我已经浏览了qt文档并搜索了互联网以找到这个问题的答案。

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

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

我需要将此seekTime变量作为QTime对象返回,我该怎么做?

提前预订..!

1 个答案:

答案 0 :(得分:1)

这应该有用。

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&amp; 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的预期行为。