QTime为新对象添加秒
QTime add seconds to new object
我使用的是QT5.51。为什么t1无效?:
QTime t1 = QTime().addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");
我本想得到"00:02:02",但我得到了"。
我想我得到了:
QTime t1(0,0,0,0);
t1 = t1.addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");
= true "00:02:02"
新默认构建的QTime
对象以无效状态启动。
QTime::QTime()
构造一个空时间对象。空时间可以是
QTime(0, 0, 0, 0)
(即午夜)对象,除了isNull()
返回true
,isValid()
返回false
。
在无效时间中添加秒会使其无效-毕竟,这是一个无效的时间点,而不是你所期望的午夜。这几乎是一种NaN类型的行为。
QTime QTime::addSecs(int s)const
如果此时间无效,则返回null时间。
要在有效状态下创建QTime
,您可以使用其他构造函数
QTime::QTime(int h,int m,int s=0,int ms=0)
构造一个小时h、分钟m、秒s和毫秒ms的时间。
因此午夜初始化的QTime
将是QTime(0, 0)
;因此,OP代码应该这样调整:
QTime t1 = QTime(0, 0).addSecs(122);
qDebug() << t1.isValid() << t1.toString("hh:mm:ss");
您还可以使用其他几种辅助静态方法,这取决于您需要如何初始化它
相关文章:
- 队列未添加对象-C++11
- 创建/向容器添加对象时如何使用构造函数/析构函数
- 向 std::map 添加对象和自定义比较<>
- 如何在构造函数的静态列表中添加对象
- C++ std::vector 创建对象然后添加对象与在向量中创建对象之间的区别?
- 重载 + 运算符以使用 int 添加对象
- 如何在数组中添加对象成员
- 为什么类对象的向量在使用push_back添加对象时会删除对象
- 我如何阻止在多个向量中添加对象
- 指针集合和添加对象
- 动态添加对象
- 在c++中向向量添加对象vs向向量添加指针
- 添加c++对象到Objective C集合(NSSet)的麻烦
- 添加对象指针到链表c++
- c++ push_back只向vector中的位置0添加对象
- 在TStringList中添加对象
- 在c++中似乎不能正确地向数组中添加对象
- 使用push_back向vector添加对象工作正常,但使用访问器语法[]添加对象不工作
- 在for循环中向vector中添加对象
- 使用CMake从二进制文件编译并添加对象文件