Qt基础之三十二:浅谈qDebug()

我们先来看看qDebug()的基本用法,再去研究qDebug的实现原理。
除了qDebug(),Qt还提供了qInfo()、qWarning()、qCritical()方便我们打印不同种类的信息,而qFatal()直接结束程序,后面代码不再执行,用的较少。在Unix/X11和macOS,调试信息会打印到stderr;在Windows,如果是控制台程序,调试信息会输出到控制台,否则会输出到调试器(debugger)—比如说Qt Creator的应用程序输出(Application Output)窗口。
qDebug()是一个全局的宏定义,在源码的Src\qtbase\src\corelib\global\qlogging.h文件中,如下所示:

#define qDebug QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).debug
#define qInfo QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).info
#define qWarning QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).warning
#define qCritical QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).critical

QMessageLogger中有很多debug、info、warning、critical函数的重载,比如

QDebug QMessageLogger::debug() const
{

猜你喜欢

转载自blog.csdn.net/caoshangpa/article/details/129632494