一、Qt Widgets 问题交流
1.
二、Qt Quick 问题交流
1.
三、其他
1.QMessageLogContext 在 release 版本输出文件、函数名、行号等信息
在release模式下,Qt日志的QMessageLogContext默认是不带文件、函数名、行号等信息的,可以在 pro 文件加上:
DEFINES += QT_MESSAGELOGCONTEXT
然后,重新qmake,编译,就可以在release版本中正确输出日志信息。可能需要清理、删除下之前生成的文件才生效。
2.qDebug输出格式化
参照文档:https://doc.qt.io/qt-5/qtglobal.html#qSetMessagePattern
参照博客:http://www.cppblog.com/biao/archive/2013/09/02/202956.html
也可以使用条件 %{if-debug},%{if-info}, %{if-warning},%{if-critical}或%{if-fatal}后跟%{endif},当条件匹配时中间包含的内容才打印。
QString QT_MESSAGE_PATTERN=
"[%{if-debug}D%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}]"
": %{file}:%{line} - %{message}";
qSetMessagePattern(QT_MESSAGE_PATTERN);
qDebug() << "Hello Qt";
qWarning() << QString("龚建波 1992").toUtf8().toHex();