PTY终端连接实现的颜色无法输出问题

自已根据文档实现PTY时,发现终端连接上时没有颜色,折腾很久了看了很久网上文章,该做也做了,但就是无法输出颜色。后来单步调试发现,输出的颜色是256色或真彩色,而本地配置的颜色表只是16色。

仔细研究一下这个颜色库:https://github.com/mbadolato/iTerm2-Color-Schemes
它全都是只有16色,而PTY终端进程配置的256色或真彩色,故输出的颜色范围几本不在正常可视的范围内,故无法显示出颜色。

QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("TERM", "xterm"); // 这个默认情况下是16颜色的。
env.insert("TERM", "xterm-16color"); // 这个强制指定为16颜色的。
//env.insert("TERM", "xterm-256color"); //这个颜色指定后,上述颜色表均不会显示。
setProcessEnvironment(env);

检查颜色表是否启用,可在终端执行:env命令。如下图: