基础类型
因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数据类型。
类型名称 | 注释 | 备注 |
---|---|---|
qint8 | signed char | 有符号8位数据 |
qint16 | signed short | 16位数据类型 |
qint32 | signed short | 32位有符号数据类型 |
qint64 | long long int 或(__int64) | 64位有符号数据类型,Windows中定义为__int64 |
qintptr | qint32 或 qint64 | 指针类型 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64 |
qlonglong | long long int 或(__int64) | Windows中定义为__int64 |
qptrdiff | qint32 或 qint64 | 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64 |
qreal | double 或 float | 除非配置了-qreal float选项,否则默认为double |
quint8 | unsigned char | 无符号8位数据类型 |
quint16 | unsigned short | 无符号16位数据类型 |
quint32 | unsigned int | 无符号32位数据类型 |
quint64 | unsigned long long int 或 (unsigned __int64) | 无符号64比特数据类型,Windows中定义为unsigned __int64 |
quintptr | quint32 或 quint64 | 根据系统类型不同而不同,32位系统为quint32、64位系统为quint64 |
qulonglong | unsigned long long int 或 (unsigned __int64) | Windows中定义为__int64 |
uchar | unsigned char | 无符号字符类型 |
uint | unsigned int | 无符号整型 |
ulong | unsigned long | 无符号长整型 |
ushort | unsigned short | 无符号短整型 |
qsizetype | size_t | unsigned __int64 类型 |
log输出
在Qt中进行log输出, 一般不使用c中的
printf
, 也不是使用C++中的cout
, Qt框架提供了专门用于日志输出的类, 头文件名为QDebug
。
1. qDebug(调试信息提示)
qDebug("调试信息输出: %d",age); // C风格
qDebug() << "输出调试信息: " << age; // C++风格
qDebug的注意事项:
流的形式输出会自动在数据之间加上空格
输出之后会自动插入换行
输出(QString)字符串会在字符串之间加上双引号
如何取消流的形式输出时数据间的空格呢?
qDebug() << "输出调试信息: " << age; // 未取消数据间空格
qDebug().nospace() << "输出调试信息: " << age; // 取消数据间的空格
如何取消输出字符串(QString)时的双引号呢?
QString str = "Hello World";
qDebug() << str;
qDebug().noquote() << str;
2. qInfo(输出信息)
int num = 1001;
qInfo("qInfo输出%d",num);
qInfo() << "qInfo输出" << num;
3. qWarning(一般的警告提示)
qWarning("qWarning输出%d", num);
qWarning() << "qWarning输出" << num;
4. qCritical(严重的错误提示)
qCritical("qCritical输出%d", num);
qCritical() << "qCritical输出" << num;
5. qFatal(致命错误提示,会直接中断程序)
//qFatal() 不能使用流的方式输出
qFatal("qFatal输出");
qInfo() << "如果没有中断,我就输出来了";
抑制输出的方式
//5. 抑制QDebug输出
qInfo() << "qInfo输出......";
qDebug() << "qDebug输出";
qDebug("qDebug输出2......");
qInfo("qInfo输出2......");
方式1:使用宏的方式抑制输出
#define QT_NO_DEBUG_OUTPUT // 放到代码文件的最开头位置
方式2:配置CMakeLists.txt文件的方式抑制输出
#在配置文件中添加宏定义抑制输出
add_compile_definitions(QT_NO_DEBUG_OUTPUT)