可以看到,当定义了QT_NO_DEBUG_OUTPUT宏时,Qt 首先取消先前的qDebug宏定义,然后将其重新定义为QT_NO_QDEBUG_MACRO宏: #defineQT_NO_QDEBUG_MACRO while (false) QMessageLogger().noDebug QT_NO_QDEBUG_MACRO宏定义了一个永远不会执行的条件while (false),我们可以假定[1]编译器不会解释更不会去执行qDebu...
DEFINES += QT_NO_DEBUG_OUTPUT 这样子相当于注释掉qDebug()语句了。 注意: (1)如果开始已经编译了工程,然后再加上DEFINES += QT_NO_DEBUG_OUTPUT在.pro文件中 需要clean工程,否则qDebug()还是可以输出。clean工程之后,qDebug()就不输出了。
(1)如果开始已经编译了工程,然后再加上DEFINES += QT_NO_DEBUG_OUTPUT在.pro文件中 需要clean工程,否则qDebug()还是可以输出。clean工程之后,qDebug()就不输出了。
re: Qt:禁止qDebug的输出 Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT 原来如此,以后就省的把每条qDebug都注释掉了。。。
可以看到,在使用 nospace() 后,输出的项之间没有额外的空格。 DEFINES+= QT_NO_DEBUG_OUTPUT: 在Qt 项目文件(.pro 文件)中,可以通过添加 DEFINES+= QT_NO_DEBUG_OUTPUT 来禁用所有的 Qt 调试输出。 这意味着,不仅仅是 qDebug(),还有其他 Qt 的调试输出函数也都不会在调试模式下输出任何内容。
Qt程序中调试会加入qDebug语句,但有时候想屏蔽掉,用下面的方法很方便实现。 在Qt项目文件添加以下定义: 屏蔽qInfo() DEFINES += QT_NO_INFO_OUTPUT 屏蔽qDebug() DEFINES += QT_NO_DEBUG_OUTPUT 屏蔽qWarning() DEFINES += QT_NO_WARNING_OUTPUT
例如,我们可以创建一个名为myMessageOutput的函数,用于处理输出信息,并将它安装为消息处理程序。在该函数中,我们可以使用QString::asprintf函数来设置输出信息的格式,例如添加时间戳、文件名和行号等。 示例代码如下: #include<QtDebug>voidmyMessageOutput(QtMsgTypetype,constQMessageLogContext&context,constQString&msg...
qDebug(constchar*message,...) 在Windows下,如果消息是控制台应用程序,则将消息发送到控制台。否则,它将被发送到调试器。如果在编译过程中定义了QT_NO_DEBUG_OUTPUT,则此函数不执行任何操作。 例如: qDebug("Items in list: %d", myList.size()); ...
{ //如果用户指定的输出函数存在,使用它来输出信息(*handler)( QtDebugMsg, buf );} else {#if defined(Q_CC_MWERKS)mac_default_handler(buf); //mac系统下的缺省输出函数#elif defined(Q_OS_TEMP)QString fstr( buf );OutputDebugString( (fstr + "\n").ucs2() );#else fprintf( stderr, "...