我对这个QT的东西很认真。这可能是一个愚蠢的问题,但我找不到任何答案。我已经浏览了qt文档并搜索了互联网以找到这个问题的答案。
我的问题是假设有一个“整数变量”,其持续时间值以秒为单位。我需要那个转换为QTime对象以作为QTime返回。我怎么能在Qt创建者中做到这一点?? ..
int seekTime;
int seconds = QTime().secsTo(duration);
seekTime = seconds * bytePos/totalSize;
return seekTime;
我需要将此seekTime变量作为QTime对象返回,我该怎么做?
提前预订..!
答案 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
的预期行为。