QT输出彩色log

发布时间 2023-05-24 16:18:29作者: Azuki_op

要输出彩色信息有点类似于html的语法,即在要输出的文字前加上一段颜色指令。

指令格式如下\033[*m 这里的*就是转义字符,例如我们要输出一段绿色的文字,则

qDebug() << "\033[32m" <<"Hello!";

即在输出文字前,先输出一个颜色指令。 注意这个指令对后续的输出都会生效,

如果想关掉颜色只要再输出0号指令即可

qDebug() << "\033[0m";

 0 : Reset Color Attributes
  1 : 加粗
  2 : 去粗
  4 : 下划线
  5 : 闪烁
  7 : 反色
  21/22 : 加粗 正常
  24 : 去掉下划线
  25 : 停止闪烁
  27 : 反色
  30 : 前景,黑色
  31 : 前景,红色
  32 : 前景,绿色
  33 : 前景,黄色
  34 : 前景,篮色
  35 : 前景,紫色
  36 : 前景,青色
  37 : 前景,白色
  40 : 背景,黑色
  41 : 背景,红色
  42 : 背景,绿色
  43 : 背景,黄色
  44 : 背景,篮色
  45 : 背景,紫色
  46 : 背景,青色
  47 : 背景,白色
enum class LogType {  
    Reset = 0,

    Bold,
    Unbold,

    FrontBlack,
    FrontRed,
    FrontGreen,
    FrontYellow,
    FrontBlue,
    FrontPurple,
    FrontCyan,
    FrontWhite,
    BackBlack,
    BackRed,
    BackGreen,
    BackYellow,
    BackBlue,
    BackPurple,
    BackCyan,
    BackWhite,

    TypeCount
};
static const char * logCommands[] = {
    "\033[0m",
    "\033[1m",
    "\033[2m",
    "\033[30m",
    "\033[31m",
    "\033[32m",
    "\033[33m",
    "\033[34m",
    "\033[35m",
    "\033[36m",
    "\033[37m",
    "\033[40m",
    "\033[41m",
    "\033[42m",
    "\033[43m",
    "\033[44m",
    "\033[45m",
    "\033[46m",
    "\033[47m",
};
设置了console的工程不能显示出彩色,得把console去掉。

原文链接:Qt输出彩色log信息 - 知乎 (zhihu.com)