Qt全局定义

Qt全局定义内容

中定义了有关Qt的数据类型、函数、宏,所有Qt类的头文件中都有包含这个头文件,不同在进行添加。

Qt数据类型

Qt同样通过typedef将基本的数据类型进行包装。

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 long int 8
qreal double 8
qfloat16 2

qreal默认是double类型,如果使用-qreal float进行配置,则为4个字节的float类型。

qfloat16是Qt5.9.0开始新增的,表示16位的浮点数,使用qfloat16要包含

Qt函数

头文件中包含的函数大部分都是以模板类型为参数,返回模板类型,也有一些数学函数。
|Qt函数|功能|
|——— |——–|
|T qAbs(const T &value)|返回变量value的绝对值|
|bool qFuzzyCompare(double p1,double p2)|若p1近似等于p2,返回true|
|bool qFuzzyIsNull(double d)|如果d约等于0,返回true|
|const T &qMin(const T &value1, const T &value2)|返回value1和value2中的最小值|
|const T&qMax(const T&value1, const T&value2)|返回value1和value2中的最大值|
|int qrand()|获取一个随机数|
|void qsrand(uint seed)|以seed为初始化返回一个随机数|

Qt宏定义

  • QT_VERSION
    这个宏展开数值为0xMMNNPP(MM=major, NN=minor, PP=patch),指的是编译器的版本号。例如:Qt5.12.1–>0x051201。
  • QT_VERSION_CHECK
    该宏展开是版本号的一个整数,例如:

    1
    2
    3
    4
    5
    6
    #include <QtGlobal>
    #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
    #include <QtWidgets>
    #else
    #include <QtGui>
    #endif
  • QT_VERSION_STR

该宏展开是Qt版本号字符串,例如”5.9.0”

  • Q_BYTE_ORDER、Q_BIG_ENDIAN、Q_LITTLE_ENDIAN

Q_BYTE_ORDER表示系统内存中的数据字节序,Q_BIG_ENDIAN是大端字节序,Q_LITTLE_ENDIAN是小端字节序。例如:

1
2
3
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
…………
#endif

  • Q_NULLPTR

Qt重定义的nullptr指针。

  • Q_DECL_OVERRIDE

在类的定义中,定义一个重载虚函数时,需要添加该宏。如果使用该宏之后,对要重载的函数没有进行任何重载操作,编译器会报错。

  • Q_DECL_FINAL

对类中的虚函数进行final处理,表示不能再重载。该宏对类也有效果。

1
2
class MyBrain Q_DECL_FINAL {//MyBrian将不会被其它类继承
};

  • Q_UNUSED(name)

该宏用在函数中定义不在函数体内使用的参数。也就是说当参数在函数体内没有使用,为了避免编译器报警告,就需要添加这个宏。

  • forever

forever创建一个无限循环

  • qDebug(const char *message)

用来调试程序输出时使用。

0%