玩转Qt(1)-输出彩色log
本文于 1072 天之前发表,文中内容可能已经过时。
简介
我们在Qt Creator中开发程序的时候,经常要做的一件事情,就是看程序的输出Log。
一般的log信息都是黑白的,比如这样的:
涛哥在这里告诉大家一个隐藏的技能,那就是输出彩色的log:
从此看到的log,不再是黑白的,而是五颜六色的,生活更加绚丽多彩。
原理
要输出彩色信息有点类似于html的语法,即在要输出的文字前加上转义字符。
指令格式如下\033[m
这里的就是转义字符,例如我们要输出一段绿色的文字,则
qDebug() << “\033[32m” <<”Hello!”;
即在输出文字前,先输出一个颜色指令。
注意这个指令对后续的输出都会生效,如果想关掉颜色只要再输出0号指令即可
qDebug() << “\033[0m”;
这里有一个指令表
1 | 0 : Reset Color Attributes |
涛哥在QtCreator中测试了,只有颜色和加粗指令能生效。
代码
(代码使用C++11标准)
为了方便、直观地使用,涛哥定义了一套枚举
1 | enum class LogType { |
之后又写了一个指令列表,顺序和前面的枚举一一对应
1 | static const char * logCommands[] = { |
这样就可以通过查表的方式,拿到对应的颜色指令了
1 | logCommands[(int)(LogType::FrontYellow)] |
这个代码使用了c的强制转换,在c++11标准中会报警告,建议用static_cast。
所以涛哥又写了一个转换函数,将枚举通过static_cast转换成int类型。
1 | template <typename EnumType, typename IntType = int> |
最后就是代码的全貌了
1 |
|
顺便说一下,设置了console的工程不能显示出彩色,得把console去掉。
赏
支付宝打赏
微信打赏
为众人抱薪者,不可使其冻毙于霜雪