首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >定制Qt的调试输出

定制Qt的调试输出

作者头像
Qt君
发布于 2020-04-15 13:54:38
发布于 2020-04-15 13:54:38
96500
代码可运行
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程
运行总次数:0
代码可运行

❝我们使用Qt库用的最多的调试输出是qDebug了,但是它输出单一。如果需要输出日期时间,行号等消息时都需要通过代码去实现似乎太过于繁琐。本文通过简单的配置,用最少的修改就可以定制Qt的输出信息。 ❞

  不多说,先上代码!!!

使用例子

  新建一个名字为TestApp的应用。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qSetMessagePattern("%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");
    qInfo()    << "Hello world";
    qDebug()   << "Hello world";
    qWarning() << "Hello world";

    return a.exec();
}

  输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TestApp info [2020-04-13 23:01:11] ..\TestApp\main.cpp 8 main Hello world
TestApp debug [2020-04-13 23:01:11] ..\TestApp\main.cpp 9 main Hello world
TestApp warning [2020-04-13 23:01:11] ..\TestApp\main.cpp 10 main Hello world

使用

「通过设置qSetMessagePattern函数去更改默认的消息。」   一般常用的格式字符串有:

格式

含义

%{appname}

程序名字,等价于QCoreApplication::applicationName()

%{type}

输出类型如:"debug","warning","critical"或"fatal"

%{time [format]}

消息的时间格式,等价于:QDateTime::toString()

%{file}

打印所在的文件

%{line}

打印所在文件的行号

%{function}

打印所在的函数

%{message}

打印的消息

注意:

  1. qSetMessagePattern从Qt 5.0引入。
  2. 只能打印Qt的调试输出如:qDebug,qInfo,qWarning,qCritical,qFatal。而printf,cout将会原样输出。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
定制Qt的调试输出(补充)
  由于qSetMessagePattern设置的输出格式默认只会在debug模式下生效,在release模式下就失效了,比如release模式下文件名字和行号都为无效。我们要想在release模式下生效,只需要在项目文件添加DEFINES += QT_MESSAGELOGCONTEXT后重新编译即可。
Qt君
2020/05/08
1.1K0
Qt的简易日志模块封装
C++的下的日志库有很多,如log4cpp、Easylogging++,eplog,g3log,Qt下也有log4qt。
杨永贞
2022/08/11
8740
Qt的简易日志模块封装
Qt实现FTP的上传和下载
本来想简单抄抄书,随便手写个Ftp客户端的,结果发现教材上的是基于Qt4的QFtp类库,而在Qt5中取消了这一个类库(同时也取消了QHttp等的类),取而代之的是QNetworkAccessManager 这个类,把这些杂货全都揽下来了,据说是因为之前的两个类有重复而且效率有问题balabala。于是就百度了一下,发现百度上要么讲的不全,要么就是要去下一个由热心网民重新封装的QFtp类。显然我并不喜欢无脑复制粘贴,想好好看下Qt官方提供的东西的用法,深入的理解下Qt网络编程,于是就果断自行google(话说google真好用),加上查看帮助文档,终于把一个简版的Ftp客户端大概框架弄清楚了。
mythsman
2022/11/14
1.3K0
Qt实现FTP的上传和下载
【C++】Qt:QML介绍与入门示例
Qt Quick是一个用于构建现代、高效、可扩展用户界面的框架。它是Qt开发框架的一部分,旨在通过声明性语法和JavaScript绑定来简化用户界面的设计和实现。
DevFrank
2024/07/24
1.3K0
【C++】Qt:QML介绍与入门示例
Qt开发入门与环境搭建(基础篇)
当前专栏里的项目上位机APP是采用Qt开发的,这一章节主要是介绍Qt开发环境的安装,以及Qt开发环境入门的使用。如果你Qt没有任何基础,建议仔细看一遍,大致了解下Qt基础。
DS小龙哥
2025/05/27
8580
Qt开发入门与环境搭建(基础篇)
Qt多语言翻译示例
一个基础的翻译示例和一些注意事项 ---- 示例目录 QtTranslation/ ├── Languages │ ├── en.qm │ ├── en.ts │ ├── Languages.qrc │ ├── zh_CN.qm │ └── zh_CN.ts ├── main.cpp └── QtTranslation.pro 注意事项 将翻译文件(ts后缀)生成的qm后缀文件用资源文件( Languages.qrc)包括以供程序引用; translator.load(":/zh_CN.
Qt君
2019/07/15
2.2K0
Qt学习--01
注意: 1.所创建项目路径不能有中文 2.所创建项目名称不能有中文和空格 3.默认创建有窗口类 widget,基类有三种选择:QWidget所有窗口的基类,QMainWindow带一些菜单栏,状态栏,工具栏的窗口,QDialog对话框窗口
大忽悠爱学习
2021/02/22
3130
Hello Qt World
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
3890
【QT】QT文件处理
QFile类用于文件操作,它提供了读写文件的接口,可以读写文件、二进制文件和Qt资源文件。
半生瓜的blog
2023/05/13
1.7K0
【QT】QT文件处理
Qt 窗口消息处理机制及拦截消息的五种方法
前几篇文章中,我们介绍了一些简单的消息拦截方法,但其实在整个 Qt 框架中,不仅仅有那么几处拦截消息的方法,在 Qt 文档中标明了,一共有5中方法。下面就一一列举一下每种方法所在的位置以及实现方法。后面我们会提供代码帮助大家学习。
我与梦想有个约会
2023/10/20
1K0
Qt 窗口消息处理机制及拦截消息的五种方法
Qt简单屏幕截图(兼容Qt4/5)
Qt4使用 QPixmap::grabWindow接口获取指定屏幕; Qt5使用QScreen 的grabWindow接口获取指定屏幕; QApplication::desktop()获取根窗口; QUuid::createUuid()产生唯一ID; pixmap.save(name)保存截图到本地. main.cpp #include <QApplication> #include <QDesktopWidget> #include <QScreen> #include <QPixmap> #includ
Qt君
2019/07/15
2.6K0
14.QT-QFile文件,QBuffer缓冲区,QDir目录,QFileSystemWatcher文件系统监视
QFile Qt中所有与IO相关的类都继承于QIODevice,继承图如下所示: 其中QFile类便是用于文件操作的类 在QT中,将文件当做一种特殊的外部设备对待(比如:串口,usb等就是外部设备)
诺谦
2018/05/28
2.4K0
QT的基本知识「建议收藏」
QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。 要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。
全栈程序员站长
2022/08/29
7150
QT的基本知识「建议收藏」
Windows10下Qt程序打包发布 (与配置环境变量)
当初对程序还很懵懂的时候(现在是蒙圈),就很想知道程序是怎么被打包发布的。虽然现在还不会制作安装包,但是在Qt官方提供的工具下,可以制作Windows下Qt的“绿色免安装版”了。
用户5908113
2019/07/30
3.3K0
ffmpeg之QT开发环境搭建
之前我们进行了 FFmepg 的编译以及在 Visual Studio 中引用 FFmpeg 库:FFmpeg入门及编译,本文记录在 QT 环境中搭建 FFmepg 工程。
Gnep@97
2023/11/29
8240
ffmpeg之QT开发环境搭建
QT-QTSingleApplication-程序只运行一个实例
QTSingleApplication由Qt官方提供的,用于实现只启动一个实例,并在启动时可以向向另一个实例通信(依赖于QtNetwork模块)
诺谦
2019/05/24
4.2K0
Qt::Qt Log日志模块
这几天在交接工作,把之前手头的一个项目交接一下,想着增加一个日志模块,去查了一下,Qt自带的日志模块 qInstallMessageHandler 。
何其不顾四月天
2023/03/10
2K0
QT5.14.1调用动态链接库
New -> Application -> Qt Console Application -> Choose
静谧星空TEL
2021/04/27
2K0
QT5.14.1调用动态链接库
Qt 教程二
因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。
用户11332765
2024/10/28
6150
ubuntu下安装qt 的mysql 驱动遇到的问题
s1mba
2018/01/03
2.5K0
ubuntu下安装qt 的mysql 驱动遇到的问题
相关推荐
定制Qt的调试输出(补充)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档