Qt常用类 - QTime

1 开发环境

在介绍内容之前,先说明一下开发环境,如下图:

Qt版本:Qt5.3.2;
Qt开发工具:Qt Creater 3.2.1;
Qt构建工具:Desktop Qt 5.3 MinGW 32bit;
Qt开发平台:Windows 7 64bit。

2 QTime

QTime是Qt中用到的时间类,可以用于对自然时间的记录和计算,但是更多的是对于时间这个概念的记录和计算。首先,将QTime中的常用接口整理出来,分为初始化、获取、计算、流逝的时间、转换为字符串、比较共6类,这样方便学习和理解。

//初始化
QTime();
QTime(int h, int m, int s = 0, int ms = 0);
bool             setHMS(int h, int m, int s, int ms = 0);
bool             isNull() const;
bool             isValid() const;
static QTime     QTime::currentTime();
static QTime     QTime::fromMSecsSinceStartOfDay(int msecs);
static QTime     QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate);
static QTime     QTime::fromString(const QString &string, const QString &format);
static bool      QTime::isValid(int h, int m, int s, int ms = 0);//获取
int              hour() const;
int              minute() const;
int              second() const;
int              msec() const;//计算
QTime            addMSecs(int ms) const;
QTime            addSecs(int s) const;
int              msecsSinceStartOfDay() const;
int              msecsTo(const QTime &t) const;
int              secsTo(const QTime &t) const;//流逝的时间,这是些很有用的接口,需要配合起来使用,可以计算程序耗时等时间
void             start();
void             restart();
int              elapsed() const;//转换字符串
QString          toString(const QString &format) const;
QString          toString(Qt::DateFormat format = Qt::TextDate) const;//比较
bool             operator!=(const QTime &t) const;
bool             operator==(const QTime &t) const;
bool             operator<(const QTime &t) const;
bool             operator<=(const QTime &t) const;
bool             operator>(const QTime &t) const;
bool             operator>=(const QTime &t) const;

下面,是上述接口的使用例程。

#include <QDate>
#include <QThread>#define qPrintableU8(_string)                       (QString(_string).toUtf8().constData())
#define TIME_STRING_FORMAT                          ("hh:mm:ss.zzz")//QTime();
//QTime(int h, int m, int s = 0, int ms = 0);
//bool             setHMS(int h, int m, int s, int ms = 0);
//bool             isNull() const;
//bool             isValid() const;
//static QTime     QTime::currentTime();
//static QTime     QTime::fromMSecsSinceStartOfDay(int msecs);
//static QTime     QTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate);
//static QTime     QTime::fromString(const QString &string, const QString &format);
//static bool      QTime::isValid(int h, int m, int s, int ms = 0);
QTime timeNull;
qDebug("timeNull = %02d:%02d:%02d.%03d.", timeNull.hour(), timeNull.minute(), timeNull.second(), timeNull.msec());
qDebug("timeNull is null? %s.", timeNull.isNull() ? "yes" : "no");
qDebug("timeNull is valid? %s.", timeNull.isValid() ? "yes" : "no");
QTime time(20, 20, 20, 20);
qDebug("time = %s.", qPrintableU8(time.toString(TIME_STRING_FORMAT)));
qDebug("time is valid? %s.", QTime::isValid(time.hour(), time.minute(), time.second(), time.msec()) ? "yes" : "no");
QTime timeSystem = QTime::currentTime();
qDebug("timeSystem: %s.", qPrintableU8(timeSystem.toString(TIME_STRING_FORMAT)));
QTime timeFromMs = QTime::fromMSecsSinceStartOfDay(3600 * 1000);
qDebug("timeFromMs: %s.", qPrintableU8(timeFromMs.toString(TIME_STRING_FORMAT)));
QTime timeFs1 = QTime::fromString("20:21:22.023", Qt::ISODate);
qDebug("timeFs1: %s.", qPrintableU8(timeFs1.toString(TIME_STRING_FORMAT)));
QTime timeFs2 = QTime::fromString("22:23:24.025", TIME_STRING_FORMAT);
qDebug("timeFs2: %s.", qPrintableU8(timeFs2.toString(TIME_STRING_FORMAT)));//int              hour() const;
//int              minute() const;
//int              second() const;
//int              msec() const;
//参考上面或下面代码中用到的地方
//...//QTime            addMSecs(int ms) const;
//QTime            addSecs(int s) const;
//int              msecsSinceStartOfDay() const;
//int              msecsTo(const QTime &t) const;
//int              secsTo(const QTime &t) const;
QTime timeBase(0, 0, 0, 0);
QTime timeAddMs = timeBase.addMSecs(3600 * 1000);
qDebug("timeAddMs = %s.", qPrintableU8(timeAddMs.toString(TIME_STRING_FORMAT)));
QTime timeAddS = timeBase.addSecs(3600);
qDebug("timeAddS = %s.", qPrintableU8(timeAddS.toString(TIME_STRING_FORMAT)));
qDebug("msecsSinceStartOfDay = %d.", timeAddS.msecsSinceStartOfDay());
qDebug("msecsTo = %d.", timeBase.msecsTo(timeAddS));
qDebug("secsTo = %d.", timeBase.secsTo(timeAddS));//void             start();
//void             restart();
//int              elapsed() const;
QTime timeElapsed;
timeElapsed.start();
QThread::msleep(100);
qDebug("timeElapsed(start): %dms.", timeElapsed.elapsed());
timeElapsed.restart();
QThread::msleep(200);
qDebug("timeElapsed(restart): %dms.", timeElapsed.elapsed());//QString          toString(const QString &format) const;
//QString          toString(Qt::DateFormat format = Qt::TextDate) const;
QTime timeTs(0, 1, 2, 3);
qDebug("timeTs = %s", qPrintableU8(timeTs.toString("hh:mm:ss.zzz(AP)")));
qDebug("timeTs = %s", qPrintableU8(timeTs.toString(TIME_STRING_FORMAT)));
qDebug("timeTs = %s", qPrintableU8(timeTs.toString(Qt::ISODate)));//bool             operator!=(const QTime &t) const;
//bool             operator==(const QTime &t) const;
//bool             operator<(const QTime &t) const;
//bool             operator<=(const QTime &t) const;
//bool             operator>(const QTime &t) const;
//bool             operator>=(const QTime &t) const;
QTime timeEarlier(0, 0, 0, 0), timeLater(1, 1, 1, 1);
qDebug("timeEarlier != timeLater? %s.", timeEarlier != timeLater ? "yes" : "no");
qDebug("timeEarlier == timeLater? %s.", timeEarlier == timeLater ? "yes" : "no");
qDebug("timeEarlier <  timeLater? %s.", timeEarlier <  timeLater ? "yes" : "no");
qDebug("timeEarlier <= timeLater? %s.", timeEarlier <= timeLater ? "yes" : "no");
qDebug("timeEarlier >  timeLater? %s.", timeEarlier >  timeLater ? "yes" : "no");
qDebug("timeEarlier >= timeLater? %s.", timeEarlier >= timeLater ? "yes" : "no");

在学习过程中,可以将上述代码放到一个按钮的响应函数中,以调试方式运行,就可以在Qt Creater中的应用程序输出窗口看到输出结果了。

0004:Qt常用类 - QTime相关推荐

  1. Qt学习之路(1)------Qt常用类用法说明

    Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream>int main() {std::cout << ...

  2. Qt 常用类——QStandardItemModel

    转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构 ...

  3. Qt常用类——QWidget

    QWidget类是所有用户界面对象的基类. Widget是用户界面的基本单元:它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制自己. 每个Widget都是矩形的,它们按照Z-order进行排序. ...

  4. QT入门基础认知(三个常用类、三种对话框类型、信号和槽)

    1.简单介绍: 1.1 三个常用类(Qwidget类.QDialog类.QMainwindow类) Qwidget类:继承与QObject类和QPaintdevice类,所有用户界面对象的基类,常用于 ...

  5. Qt学习笔记——QTime时间类

    QTime 常用函数 QTime currentTime(); <-- 返回系统时间, 但数据类型为QTime 类型,要使用的话需使用toString(const QString &fo ...

  6. Qt常用控件介绍(一)

    Qt常用控件介绍 Qt Creator 的使用技巧 Qt Creator的常用快捷键 按钮 QPushButton QToolButton QRadioButton QCheckBox QComman ...

  7. 百科不全书之QT常用函数

    参考链接: 璎珞qc:Qt之QImage类. 沙振宇:Qt输出打印信息的日志到文件(两种方式). tandesir:Qt测算程序运行时间. 半生瓜のblog [QT]QT容器 百科不全书之QT常用函数 ...

  8. 详解 QT 主要类 QWidget

    QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...

  9. QT QVariant类数据类型使用

    QT QVariant类数据类型使用 1. QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++ 共用体 union ,一个QVariant 对象,一次只能保存一个单一类型的值. ...

最新文章

  1. 7个实战案例、24个学习视频、12G干货资料...今天带你免费入门Python数据分析!...
  2. 面向初级 Web 开发人员的 Tomcat
  3. mysql 5.7 centos 7_CentOS 7 下 MySQL 5.7 的安装与配置
  4. VC2010编译boost
  5. wxHtml 示例:关于对话框测试
  6. DNS视图及日志系统
  7. 我们可以用SharePoint做什么
  8. 编程一小时 code.org [六一关注]
  9. 黄聪:PHP去掉转义后字符串中的反斜杠\函数stripslashes
  10. astr在python_python学习之初识字符串
  11. 解决filezilla中无法显示中文的文件名
  12. python控制视频_控制Python面向对象的访问
  13. Android 3D 编程:索引
  14. 什么是广告?为什么我们讨厌广告?
  15. char 数组和 int 之间转化
  16. 什么是测地线(geodesic)?【讲解清晰生动,深入浅出,通俗易懂】
  17. opensips搭配rtpengine实现sip信令和rtp流的代理
  18. ST六轴传感器LSM6DSO使用记录
  19. 网络安全简历如何写?
  20. python:使用unquote对url解码

热门文章

  1. 3DES文件加密程序
  2. 如何证明我们的世界是真实的,而镜子里的世界是虚假的
  3. 2016计算机学科夏令营上机考试 A:分段函数 printf输出格式控制
  4. Python爬虫练习笔记——爬取单个网页里的所有图片(入门)
  5. AJAX和JSON详解
  6. MySQL常用查询(查行数、列数、表数、字段数)和常用函数
  7. 【Android】使用Wifi或网线连接ADB调试App
  8. Excel2003绘制标准曲线
  9. 【已解决】error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: expected
  10. 爱从26个字母开始 (可爱的史努比)