<QtGlobal> 头文件包含了 Qt 类库的一些全局定义,包括基本数据类型、函数和宏,一般的 Qt 类的头文件都会包含该文件,所以不用显式包含这个头文件也可以使用其中的定义。
为了确保在各个平台上各数据类型都有统一确定的长度,Qt 为各种常见数据类型定义了类型符号,如 qint8 就是 signed char 的类型定义,即:
<QtGlobal>中定义的数据类型见表 1。
Qt 数据类型 | 等效定义 | 字节数 |
---|---|---|
qint8 | signed char | 1 |
qint16 | signed short | 2 |
qint32 | signed int | 4 |
qint64 | long long int | 8 |
qlonglong | long long int | 8 |
quint8 | unsigned char | 1 |
quint16 | unsigned short | 2 |
quint32 | unsigned int | 4 |
quint64 | unsigned long long int | 8 |
qulonglong | unsigned long long int | 8 |
uchar | unsigned char | 1 |
ushort | unsigned short | 2 |
uint | unsigned int | 4 |
ulong | unsigned long | 8 |
qreal | double | 8 |
qfloat16 | 2 |
其中 qreal 缺省是 8 字节 double 类型浮点数,如果 Qt 使用 -qreal float 选项进行配置,就是 4 字节 float 类型的浮点数。
qfloat16 是 Qt 5.9.0 中新增的一个类,用于表示 16 位的浮点数,要使用 qfloat16,需要包含头文件 <QFloat16>。
<QtGlobal> 头文件包含一些常用函数的定义,这些函数多以模板类型作为参数,返回相应的模板类型,模板类型可以用任何其他类型替换。若是以 double 或 float 类型数作为参数的,一般有两个参数版本的同名函数,如qFuzzyIsNull(double d) 和 qFuzzyIsNull(float f)。
表 2 是 <QtGlobal> 中常用的全局函数定义,列出了函数的输入和输出参数(若存在 double 和 float 两种参数版本,只列出 double 类型参数的版本)。
函数 | 功能 |
---|---|
T qAbs(const T &value) | 返回变量 value 的绝对值 |
const T &qBound(const T &min, const T&value, const T &max) | 返回 value 限定在 min 至 max 范围之内的値 |
bool qFuzzyComparc(doublc p1, double p2) | 若 p1 和 p2 近似相等,返回 true |
bool qFuzzyIsNulI(double d) | 如果参数 d 约等于 0,返回 true |
double qInf(() | 返回无穷大的数 |
bool qIsFinite(double d) | 若 d 是一个有限的数,返回 true |
bool qIsInf(double d) | 若 d 是一个无限大的数,返回 true |
bool qIsNaN(double d) | 若 d 不是一个数,返回 true |
constT&qMax(const T&value1, const T&value2) | 返回 value1 和 value2 中较大的值 |
const T &qMin(const T&value1, const T&value2) | 返回 value1 和 value2 中较小的值 |
qint64 qRound64(double value) | 将 value 近似为最接近的 qint64 整数 |
int qRound(double value) | 将 value 近似为最接近的 int 整数 |
int qrand() | 标准 C++ 中 rand() 函数的线程安全型版本,返回 0 至 RAND_MAX 之间的伪随机数 |
void qsrand(uint seed) | 标准 C++ 中 srand() 函数的线程安全型版本,使用种子 seed 对伪随机数字序列初始化 |
还有一些基础的数学运算函数在 <QtMath> 头文件中定义,比如三角运算函数、弧度与角度之间的转换函数等。
<QtGlobal>中文件中定义了很多宏,以下一些是比较常用的:
类似的宏还有 qWarning、qCritical、qFatal、qInfo 等,也是用于在 debugger 窗体显示信息。