您的位置 首页 > 腾讯云社区

定制Qt的调试输出---Qt君

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

  不多说,先上代码!!!

使用例子

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

#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(); }

  输出:

TestApp info [2020-04-13 23:01:11] ..TestAppmain.cpp 8 main Hello world TestApp debug [2020-04-13 23:01:11] ..TestAppmain.cpp 9 main Hello world TestApp warning [2020-04-13 23:01:11] ..TestAppmain.cpp 10 main Hello world使用

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

格式

含义

%{appname}

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

%{type}

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

%{time [format]}

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

%{file}

打印所在的文件

%{line}

打印所在文件的行号

%{function}

打印所在的函数

%{message}

打印的消息

注意:qSetMessagePattern从Qt 5.0引入。只能打印Qt的调试输出如:qDebug,qInfo,qWarning,qCritical,qFatal。而printf,cout将会原样输出。 ---来自腾讯云社区的---Qt君

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: