Qt开发总结(4)——Qt全局定义

《clean code》中说自己的工程最好创建自己的数据类型定义。Qt在其QtGlobal头文件中包含了一些全局定义。包括基本数据类型、函数和宏定义。

 

数据类型

数据类型定义是对基本类型的重定义,是为了确保在各个平台上各数据类型都有统一的确定的长度。其他一些定义是与Qt消息处理相关的类型。

Qt数据类型

等效定义

描述

QFunctionPointer

void (*)()

a pointer to a function that takes no arguments and returns void

QtMessageHandler

This is a typedef for a pointer to a function with the following signature:

void myMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);

QtMsgType { QtDebugMsg, QtInfoMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtSystemMsg }

This enum describes the messages that can be sent to a message handler (QtMessageHandler)

qint8

signed char

1字节

qint16

signed short

2字节

qint32

signed int

4字节

qint64

long long int

8字节

qintptr

signed int *

Integral type for representing pointers in a signed integer.

32位或64位(随平台)

qlonglong

long long int

同qint64

qptrdiff

Integral type for representing pointer differences.

qreal

double

8字节, Typedef for double unless Qt is configured with the -qreal float option.

quint8

unsigned char

1字节

quint16

unsigned short

2字节

quint32

unsigned int

4字节

quint64

unsigned long long int

8字节

quintptr

Integral type for representing pointers in an unsigned integer

qulonglong

unsigned long long int

同quint64

uchar

unsigned char

同quint8

uint

unsigned int

同quint32

ulong

unsigned long

unsigned long

ushort

unsigned short

同quint16

 

函数

头文件中包含一些常用函数的定义,这些函数多以模板类型作为参数,返回相应的模板类型。这些模板类型可用任意类型实例化。

函数

描述

T qAbs(const T &value)

返回绝对值,适用于整型和浮点型。

const T & qBound(const T &min, const T &value, const T &max)

返回value限定在min和max范围之内的值

quint32 qFloatDistance(float a, float b)

返回浮点数a和b之间的点数。

quint64 qFloatDistance(double a, double b)

同上 double

bool qFuzzyCompare(double p1, double p2)

若p1和p2近似相等,则返回true

bool qFuzzyCompare(float p1, float p2)

同上

bool qFuzzyIsNull(double d)

若d约等于0,则返回true

bool qFuzzyIsNull(float f)

同上

double qInf()

返回无穷大的数

QtMessageHandler qInstallMessageHandler(QtMessageHandler handler)

注册Qt Message,用于输出log信息。

bool qIsFinite(double d)

若d是一个有限的数,返回true

bool qIsFinite(float f)

同上

bool qIsInf(double d)

若d是一个无限大的数,则返回true

bool qIsInf(float f)

同上

bool qIsNaN(double d)

若d不是一个数,则返回true

bool qIsNaN(float f)

同上

const T & qMax(const T &value1, const T &value2)

返回v1和v2中较大的值

const T & qMin(const T &value1, const T &value2)

返回v1和v2中较小的值

double qQNaN()

返回quiet NaN

qint64 qRound64(double value)

将value近似为最接近的64位整数

qint64 qRound64(float value)

同上

int qRound(double value)

将value近似为最接近的32位整数

int qRound(float value)

同上

double qSNaN()

返回signal NaN

T * q_check_ptr(T *pointer)

检查指针,返回该指针

int qrand()

返回0至RAND_MAX之间的伪随机数

void qsrand(uint seed)

使用种子初始化随机数列

QString qtTrId(const char *id, int n = -1)

字符转换,类似于tr()函数

 

宏定义

头文件中定义了很多宏定义,这里就不一一列出了,下面挑出几个常见的介绍。

宏定义

描述

QT_VERSION

标识Qt编译器版本,如0x050901标识Qt5.9.1。

QT_VERSION_CHECK

Qt版本号的征整数表示,用以条件编译设置。

QT_VERSION_STR

Qt版本号对应的字符串,如“5.9.1”

Q_BYTE_ORDER

标识内存中存储数据的字节顺序

Q_BIG_ENDIAN

大端存储 #if QBYTE_OEDER== Q_BIG_ENDIAN

Q_LITTLE_ENDIAN

小端存储 #if QBYTE_OEDER== Q_ LITTLE _ENDIAN

Q_DECL_IMPORT

在设计或使用共享库时,用以导入内容。

Q_DECL_EXPORT

在设计或使用共享库时,用以导出内容。

Q_DECL_OVERRIDE

用于重载一个虚函数

Q_DECL_FINAL

将虚函数定义为最终级别,不能被重载。

Q_UNUSED(name)

在函数中定义不在函数体内使用的参数,避免警告。

Q_ASSERT(bool test)

当test为false时打印警告信息

Q_CHECK_PTR(void *pointer)

检查指针,打印内存错误信息

Q_OS_LINUX

在使用Linux平台编译时被定义,其他平台类似

Q_PROCESSOR_X86_64

在x86平台用64位编译器编译时被定义,其他类似

qDebug(const char *message, ...)

打印调试信息,还有qCritical,qFatal,qInfo, qWarning

发布了76 篇原创文章 · 获赞 63 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/bjtuwayne/article/details/98747361