#ifndefQT_DEBUG//<== Please note... if not defined//Some codes#endif 也就是说,Qt提供了针对Debug和Release模式的条件编译宏,分别对应QT_DEBUG和QT_NO_DEBUG 1、检查Debug模式,可以采用类似如下的代码: 代码语言:javascript 复制 #ifdefQT_DEBUG//Some codes#endif 或者: 代码语言:javascript 复制 #ifndef...
可以看到,当定义了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...
#define QT_NO_DEBUG_OUTPUT #include <QCoreApplication> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 你的代码 return a.exec(); } 但请注意,直接在代码中定义QT_NO_DEBUG_OUTPUT可能不会有预期的效果,因为这通常需要Qt内部的处理来识别并据此减少调试输出。更...
QT_CHECK_MATH:检测危险的数学,比如被0除 QT_NO_CHECK:关闭所有的QT_CHECK_...标记 QT_DEBUG:使调试代码生效 QT_NO_DEBUG:关闭QT_DEBUG标记 默认情况下,QT_DEBUG和所有的QT_CHECK标记都是打开的。如果要关闭QT_DEBUG,请定义QT_NO_DEBUG。如果要关闭QT_CHECK标记,请定义QT_NO_CHECK。 实例: void f( char...
#include#include<stdio.h>#include<stdlib.h>void myMessageOutput( QtMsgType type, const char *msg )//定义信息输出函数{switch ( type ) {case QtDebugMsg: //输出调试信息fprintf( stderr, "Debug: %s\n", msg );break;case QtWarningMsg: //输出警告信息fprintf( stderr, "Warning: %s\n", ...
默认情况下,QT_DEBUG和所有的QT_CHECK标记都是打开的。如果要关闭QT_DEBUG,请定义QT_NO_DEBUG。如果要关闭QT_CHECK标记,请定义QT_NO_CHECK。 实例: voidf(char*p,inti) { #if defined(QT_CHECK_NULL) if(p==0) qWarning("f: Null pointer not allowed"); ...
可以看到,在使用 nospace() 后,输出的项之间没有额外的空格。 DEFINES+= QT_NO_DEBUG_OUTPUT: 在Qt 项目文件(.pro 文件)中,可以通过添加 DEFINES+= QT_NO_DEBUG_OUTPUT 来禁用所有的 Qt 调试输出。 这意味着,不仅仅是 qDebug(),还有其他 Qt 的调试输出函数也都不会在调试模式下输出任何内容。
其中QLoggingCategory头文件定义了日志类别,而QtDebug头文件定义了用于调试的一系列宏。 在输出提示信息之前,我们需要设置日志类别。我们可以通过以下语句设置日志类别: QLoggingCategory::setFilterRules(".debug=true\n.warning=false"); 这句话的意思是将所有debug级别的信息输出,将所有warning级别的信息过滤掉。
re: Qt:禁止qDebug的输出 Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT 原来如此,以后就省的把每条qDebug都注释掉了。。。
toLatin1()+"的博客"); int a = 12; qDebug("%d",a); 3.不注释qDebug的情况下取消打印 在pro文件添加DEFINES += QT_NO_DEBUG_OUTPUT即可,记得重新构建,不然可能还是会打印出来 原文连接:Qt笔记(二十一)之QDebug相关_我是黄同学博客-CSDN博客...