
| ✨博客主页 | ||
|---|---|---|
| 何曾参静谧的博客 | ||
| 📌文章专栏 | ||
| 「QT」QT5程序设计 | ||
| 📚全部专栏 | ||
| 「Win」Windows程序设计 | 「IDE」集成开发环境 | 「UG/NX」BlockUI集合 |
| 「C/C++」C/C++程序设计 | 「DSA」数据结构与算法 | 「UG/NX」NX二次开发 |
| 「QT」QT5程序设计 | 「File」数据文件格式 | 「UG/NX」NX定制开发 |
| 「Py」Python程序设计 | 「Math」探秘数学世界 | 「PK」Parasolid函数说明 |
目录
- Qt 5.15中的QTime类详解
- 一、类的引言
- 二、使用范围
- 三、类的头文件
- 四、类的继承
- 五、类的构造介绍
- 六、公有函数介绍
- 七、Static函数介绍
- 八、运算符重载
- 九、详细代码举例
Qt 5.15中的QTime类详解
一、类的引言
QTime类是Qt框架中用于表示和操作一天中具体时间(小时、分钟、秒、毫秒)的一个类。它提供了丰富的功能,如时间比较、时间加减、时间格式化等。QTime类与QDate和QDateTime类有所不同,它不处理日期或时区相关的信息,专注于一天内的时间处理。
二、使用范围
QTime类通常用于计算时间间隔、记录时间戳、获取当前时间等。它不与Qt的事件循环绑定,因此不适合用于实现定时功能。相反,QTimer类更适合用于定时操作。
三、类的头文件
要使用QTime类,需要在代码中包含其头文件:
#include <QTime>
四、类的继承
QTime类继承自QObject的基类(间接),但不直接继承自QObject。它位于Qt Core模块中,因此在项目的.pro文件中需要添加:
QT += core
五、类的构造介绍
QTime类提供了多种构造函数,用于创建QTime对象:
- 默认构造函数:
QTime()创建一个空时间对象。 - 指定时间构造函数:
QTime(int h, int m, int s = 0, int ms = 0)创建一个指定的小时、分钟、秒和毫秒的时间对象。
六、公有函数介绍
QTime类提供了丰富的公有函数,用于时间的获取、设置和操作:
-
时间获取函数:
int hour() const:返回时间的小时部分(0-23)。int minute() const:返回时间的分钟部分(0-59)。int second() const:返回时间的秒部分(0-59)。int msec() const:返回时间的毫秒部分(0-999)。
-
时间设置函数:
bool setHMS(int h, int m, int s, int ms = 0):设置时间的小时、分钟、秒和毫秒。
-
时间操作函数:
QTime addSecs(int s) const:返回一个新的QTime对象,时间比原对象晚s秒。QTime addMSecs(int ms) const:返回一个新的QTime对象,时间比原对象晚ms毫秒。int secsTo(const QTime &t) const:返回从当前时间到t的秒数。int msecsTo(const QTime &t) const:返回从当前时间到t的毫秒数。
-
时间比较函数:
QTime类提供了一整套运算符来比较两个QTime对象,如<、<=、>、>=、==和!=。 -
时间格式化函数:
QString toString(const QString &format) const:将时间对象转换为指定格式的字符串。QString toString(QStringView format) const:同上,但使用QStringView作为参数。
-
其他函数:
bool isNull() const:检查时间对象是否为空。bool isValid() const:检查时间对象是否有效。int msecsSinceStartOfDay() const:返回从一天开始以来的毫秒数。
七、Static函数介绍
QTime类提供了几个静态函数,用于获取当前时间或进行其他与时间相关的操作:
- currentTime:
static QTime currentTime()返回表示系统当前时间的QTime对象。
八、运算符重载
QTime类重载了比较运算符(<、<=、>、>=、==、!=)和赋值运算符(=),使得QTime对象可以方便地进行比较和赋值操作。
九、详细代码举例
以下是一个使用QTime类的示例程序,演示了如何获取当前时间、计算时间差以及格式化时间输出:
#include <QCoreApplication>
#include <QTime>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 获取当前时间QTime startTime = QTime::currentTime();qDebug() << "开始时间:" << startTime.toString("hh:mm:ss.zzz");// 模拟一些耗时操作QThread::sleep(2); // 休眠2秒// 获取结束时间QTime endTime = QTime::currentTime();qDebug() << "结束时间:" << endTime.toString("hh:mm:ss.zzz");// 计算耗时int elapsed = startTime.msecsTo(endTime);qDebug() << "耗时:" << elapsed << "毫秒";return a.exec();
}
在这个示例中,我们首先使用QTime::currentTime()获取当前时间,然后模拟一个耗时操作(休眠2秒),最后再次获取当前时间并计算时间差。时间格式化为"hh:mm:ss.zzz"格式输出。
通过以上介绍,相信你已经对Qt 5.15中的QTime类有了全面的了解。QTime类提供了强大的时间处理功能,使得在Qt应用程序中处理时间变得简单而高效。

