1、使用方法,包含对应的头文件,在需要的地方打印所需即可:
qDebug() << "----test----";
2、输出容器内数据:
若直接qDebug输出,则数据参考价值不大:
若使用for循环的方式输出,输出的数据也难辨对错:
使用容器数据转字符串的方式,有效且数据可辨:
QByteArray data;
qDebug() << "----data output begin----";
QString str = data.toHex(' ').toUpper() + " ";//将容器内的十六进制数据转换为字符串,再输出
qDebug() << str;
qDebug() << "----data output end----";
当准备for循环输出
QVector<char> xxx;时,不能够
qDebug()<<"----xxx[%d]:0x%x----"<<i,xxx[i];//错误,这样是输出不了值的
qDebug("----xxx[%d]:0x%x----",i,xxx[i]);//正确,可以输出值
3、正常输出一个数组内容
int buf[]={0};
for(int i=0;i<数组大小;i++)
{
qDebug("%d",buf[i]);
}
把一个数组内的值转换为字符进行输出:
for(int i=0;i<数组大小;i++)
{
s=QString("%1").arg(buf[i]);
qDebug()<<s;
}
4、在需要知道线程ID时,可以打印出来看看,例如查看信号槽是否需要使用QT::DirectConnection(可跨线程发送,直连),或QT::BlockingQueuedConnection(阻塞式连接,接收处理完后,才能再继续发送,用于不同线程间,若为同一线程,则会锁死阻塞)
qDebug()<<QThread::currentThrendId();
头文件为#include <QThread>