一、qDebug如何禁用

在.pro文件加入以下语句:

#Release禁止输出qWarning/qDebug信息
CONFIG (release, debug|release) {
DEFINES += QT_NO_WARNING_OUTPUT
DEFINES += QT_NO_DEBUG_OUTPUT
}

但是还不够,需要把工程清理,重新构建才能生效!!

二、qDebug如何使用

qDebug用于在控制台输出调试信息,主要有以下几种用法。

1、类似c++的cout函数

QString str="world";

qDebug()<<"hello "<<str<<"!"<<endl;

注:此处endl起到的作用有两个:

a、等同于\n换行

b、刷新缓冲区,将缓冲区数据写入文件或屏幕,因此会影响程序效率。

endl等价于"/n"+flush();

2、构造函数直接引入参数

  • 字符串拼接

QString str="world!";

qDebug("hello "+str);

  • 类似mfc中CString的format函数

int year=18;

qDebug("今年我%d",year);

  • 注:

%a,%A 读入一个浮点值(仅C99有效)    
%c 读入一个字符    
%d 读入十进制整数    
%i 读入十进制,八进制,十六进制整数    
%o 读入八进制整数    
%x,%X 读入十六进制整数   
%s 读入一个字符串,遇空格、制表符或换行符结束。    
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。    
%p 读入一个指针    
%u 读入一个无符号十进制整数   
%n 至此已读入值的等价字符数    
%[] 扫描字符集合    
%% 读%符号

3、​nospace()​关闭自动插入空格

qDebug() << "Hello" << "world!";
qDebug().nospace() << "Hello" << "world!";
输出:
Hello world!
Helloworld!

4、noquote()关闭引号字符

qDebug() << QString("Hello world!");
qDebug().noquote() << QString("Hello world!");
输出:
"Hello world!"
Hello world!

5、如果想向函数传递格式字符串和参数列表,则其工作方式与C语言的printf()函数类似。

qDebug(const char *message, ...)
qDebug("%s", "Hello world!");

6、qDebug的个性化使用

在main函数的入口处,这样写

qSetMessagePattern("%{time yyyy-MM-dd hh:mm:ss}--[%{type}]--%{function}--%{line}:%{message}");

控制台输出:

2022-10-11 14:53:01--[debug]--ConnectionPool::createConnection--132:"QSQLITE" support Transaction

三、qDebug日志重定向

一般就三种处理

1: 输出到日志文件比如txt文本文件。

2: 存储到数据库,可以分类存储,以便相关人员查询分析。

3: 重定向到网络,对方用小工具连接程序后,所有打印信息通过tcp发过去。

https://gitee.com/feiyangqingyun/QWidgetDemo/tree/master/control/savelog

x、遗留问题

如果是release还需要在pro中加上 DEFINES += QT_MESSAGELOGCONTEXT 才能输出上下文,默认release关闭的。???确定吗???

如何有效禁止qDebug的输出?qDebug().nospace()和noquote()的作用是什么?相关推荐

  1. qDebug 控制台输出

    做个小笔记:qDebug 控制台输出 Ⅰ:*.pro文件中添加 win32:CONFIG += console Ⅱ:配置项目运行设置,将Run in terminal 复选框打勾 Ⅲ:添加头文件 #i ...

  2. error: no matching function for call QDebug:: QDebug

    error: no matching function for call QDebug:: QDebug 源代码 #include "mypushbutton.h" #includ ...

  3. qDebug格式化输出类型

    %a,%A--读入一个浮点值(仅C99有效) %c--读入一个字符   %d--读入十进制整数 %i--读入十进制,八进制,十六进制整数 %o--读入八进制整数 %x,%X--读入十六进制整数 %s- ...

  4. qdebug 调试 输出乱码_Python里三个最高逼格的调试神器

    调试是开发过程中不可避免的一个环节,在Python中我们使用print.logging.assert等方法进行调试既简单又实用,但毕竟有其局限性.今天这篇文章为大家带来三个工具,其中有Python的内 ...

  5. C语言的格式输出 C语言中字符的作用:

    这是C语言的格式输出,%c,%y这些代表你要输出的数据的数据类型:%d 表示输出十进制有符号的整数. 1.%u 十进制无符号整数. 2.%f 表示输出浮点数. 3.%s表示输出 字符串. 4.%c表示 ...

  6. 中小企业如何有效管理进销存?ERP系统有何作用?

    简道云进销存管理应用 当前中小型企业发展迅速,企业之间的竞争十分激烈.很多企业通过实行ERP希望来规范化管理,提升企业效益,降低经营成本. 简道云进销存系统:http://s.fanruan.com/ ...

  7. QT支持https及编译OpenSSL

    文章目录 搞懂Qt OpenSSL的具体原因 一.如何找到和自己Qt版本真正合适的库并编译 二.编译自己真正所需的OpenSSL库 1.下载OpenSSL(以我所需要的1.0.2o为例) 2.配置编译 ...

  8. Qt实现动态时钟表盘的设计

    目录 头文件 源代码 运行结果 头文件 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget>#include <QPaint ...

  9. Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法

    Qt 中的信息输出机制 介绍 QDebug 在 Qt 中使用 qDebug 输出不同类型的信息 浮点数:使用 %!f(MISSING) 格式化符号输出浮点数 布尔值:使用 %! (MISSING)和 ...

最新文章

  1. 在有@Override方法上面会报错如下
  2. WebApp NativeApp HybirdApp
  3. boost::hana::partial用法的测试程序
  4. LSA类型讲解——LSA-5(第5类LSA——Autonomous System External LSA)、LSA-4(第四类LSA——ASBR Summary LSA)讲解
  5. web.config学习之assembly
  6. html主要的骨架结构
  7. SPAW Editor .NET Edition v.2乱用:使用代码调整编辑器高度
  8. 【回文串14】LeetCode 680. Valid Palindrome II
  9. vue+vuex+vur-router+ElementUI+axios +springboot打造响应式博客项目
  10. matlab画伯德图(带谐振点和-3dB带宽)
  11. 多台机器同步Windows上的文件 -cwRsync 同步问题
  12. Opencv 16位深度图片显示并保存
  13. php倒序正序,php foreach正序倒序输出示例代码
  14. Spring实战学习笔记
  15. Python爬虫实战:爬取YY上漂亮小姐姐视频
  16. 免费的PDF在线合并工具,拿走不谢!
  17. LaTeX公式-Katex解析
  18. 程序员兼职可以从什么平台接私活?你值得知道!!!
  19. 我用Python分析了翟天临的论文,学术还是要认真做啊
  20. PrintDocument打印、预览、打印机设置和打印属性的方法(较完整)

热门文章

  1. JAVA教育培训机构信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  2. C++STL详解(五)list的介绍及其使用
  3. 一分钟看懂财务利润报表!
  4. Volly 框架简介
  5. 正则表达式验证手机号 身份证号 银行卡号 姓名输入
  6. java quickfix_QuickFix Java 讲解(一)概述、下载方法,和协议内容
  7. ASO优化之如何提升用户留存率
  8. flash不是html标签,Flash中所支持的Html标签
  9. swagger 返回值描述
  10. 5G与4G到底有什么区别?不仅速度惊人,还有这些优点