如何有效禁止qDebug的输出?qDebug().nospace()和noquote()的作用是什么?
一、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()的作用是什么?相关推荐
- qDebug 控制台输出
做个小笔记:qDebug 控制台输出 Ⅰ:*.pro文件中添加 win32:CONFIG += console Ⅱ:配置项目运行设置,将Run in terminal 复选框打勾 Ⅲ:添加头文件 #i ...
- error: no matching function for call QDebug:: QDebug
error: no matching function for call QDebug:: QDebug 源代码 #include "mypushbutton.h" #includ ...
- qDebug格式化输出类型
%a,%A--读入一个浮点值(仅C99有效) %c--读入一个字符 %d--读入十进制整数 %i--读入十进制,八进制,十六进制整数 %o--读入八进制整数 %x,%X--读入十六进制整数 %s- ...
- qdebug 调试 输出乱码_Python里三个最高逼格的调试神器
调试是开发过程中不可避免的一个环节,在Python中我们使用print.logging.assert等方法进行调试既简单又实用,但毕竟有其局限性.今天这篇文章为大家带来三个工具,其中有Python的内 ...
- C语言的格式输出 C语言中字符的作用:
这是C语言的格式输出,%c,%y这些代表你要输出的数据的数据类型:%d 表示输出十进制有符号的整数. 1.%u 十进制无符号整数. 2.%f 表示输出浮点数. 3.%s表示输出 字符串. 4.%c表示 ...
- 中小企业如何有效管理进销存?ERP系统有何作用?
简道云进销存管理应用 当前中小型企业发展迅速,企业之间的竞争十分激烈.很多企业通过实行ERP希望来规范化管理,提升企业效益,降低经营成本. 简道云进销存系统:http://s.fanruan.com/ ...
- QT支持https及编译OpenSSL
文章目录 搞懂Qt OpenSSL的具体原因 一.如何找到和自己Qt版本真正合适的库并编译 二.编译自己真正所需的OpenSSL库 1.下载OpenSSL(以我所需要的1.0.2o为例) 2.配置编译 ...
- Qt实现动态时钟表盘的设计
目录 头文件 源代码 运行结果 头文件 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget>#include <QPaint ...
- Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法
Qt 中的信息输出机制 介绍 QDebug 在 Qt 中使用 qDebug 输出不同类型的信息 浮点数:使用 %!f(MISSING) 格式化符号输出浮点数 布尔值:使用 %! (MISSING)和 ...
最新文章
- 在有@Override方法上面会报错如下
- WebApp NativeApp HybirdApp
- boost::hana::partial用法的测试程序
- LSA类型讲解——LSA-5(第5类LSA——Autonomous System External LSA)、LSA-4(第四类LSA——ASBR Summary LSA)讲解
- web.config学习之assembly
- html主要的骨架结构
- SPAW Editor .NET Edition v.2乱用:使用代码调整编辑器高度
- 【回文串14】LeetCode 680. Valid Palindrome II
- vue+vuex+vur-router+ElementUI+axios +springboot打造响应式博客项目
- matlab画伯德图(带谐振点和-3dB带宽)
- 多台机器同步Windows上的文件 -cwRsync 同步问题
- Opencv 16位深度图片显示并保存
- php倒序正序,php foreach正序倒序输出示例代码
- Spring实战学习笔记
- Python爬虫实战:爬取YY上漂亮小姐姐视频
- 免费的PDF在线合并工具,拿走不谢!
- LaTeX公式-Katex解析
- 程序员兼职可以从什么平台接私活?你值得知道!!!
- 我用Python分析了翟天临的论文,学术还是要认真做啊
- PrintDocument打印、预览、打印机设置和打印属性的方法(较完整)