[系统配置]:Linux安装中文字体-以QT控件显示中文为例

Linux安装中文字体-以QT控件显示中文为例

    • 1. 问题介绍
    • 2. 检查系统内的字体,并安装缺失的中文字体

1. 问题介绍

在Qt中,笔者在使用QPainter的drawText在QImage/QPixmap中绘制中文文字显示为一系列方框,可能是因为字体设置的问题。你需要确保你的系统支持你选择的字体,并且这个字体支持中文字符。

可以尝试使用下面的代码来设置字体:

QPainter painter(this);
QFont font("Simsun", 15, QFont::Bold, true); //字体,大小,粗体,斜体
painter.setFont(font);
painter.drawText(rect, Qt::AlignHCenter, "你的中文字符串");

在这段代码中,我们首先创建了一个QPainter对象,然后创建了一个QFont对象并设置了字体为"宋体",字体大小为15,字体样式为粗体,然后我们将这个字体设置给QPainter对象,并使用drawText方法绘制中文字符串。

注意,需要在项目的.pro文件中添加以下行以确保Qt正确处理中文字符:

QT += core gui
CONFIG += c++11
CODECFORTR = UTF-8

2. 检查系统内的字体,并安装缺失的中文字体

如果,完成上述操作,可视化界面仍然显示不了中文时,需要检查系统内字体设置,以笔者的Linux系统为例,

  1. 在终端中,输入fc-list检查系统内已经安装的字体。
  2. 如果想检查系统内支持的中文字体,使用命令fc-list :lang=zh
  3. 如果系统内没有相关的字体,需要手动下载并安装相关字体;
  4. 下载.ttf后缀的字体安装包,笔者在链接内提供了宋体的安装包:SimSun Font
  5. cp /path/to/your/.ttf /usr/share/fonts
  6. 复制完成后,更新系统内的字体缓存。
​		fc-cache -fv
  1. 完成安装操作后,重新运行操作2即可。
    在这里插入图片描述

你可能感兴趣的:(系统配置-cxy必会系列,linux,qt,运维)