TorizonQt容器中文显示

By Toradex胡珊逢

Torizon 系统的其中一个特色是以容器形式开发应用程序。Toradex 提供了丰富的基础 docker 镜像加速客户应用开发,这包括 Qt5。本文将介绍如何往 docker 镜像添加中文字体,并在 Qt 图形界面应用程序显示。

Torizon 的容器是基于 debian 构建,因此可以从丰富的 debian 软件源受益,用户能够通过 apt 命令安装任何支持 Arm 处理器的软件。有些字体文件也可以通过这种方法安装。例如支持中文的开源字体文泉驿。

在 Torizon 中创建一个 debian 容器,并启动 bash 工具。

-------------------------------------------------

$ docker run -it --rm torizon/debian:$CT_TAG_DEBIAN /bin/bash

-------------------------------------------------

然后通过 apt 命令安装文泉驿字体,最后字体文件会出现在 /usr/share/fonts/truetype/ 目录下。

-------------------------------------------------

root@acd322ec8e84:/# apt update

root@acd322ec8e84:/# apt install fonts-wqy-microhei

root@acd322ec8e84:/usr/share/fonts/truetype/wqy# ls

wqy-microhei.ttc

-------------------------------------------------

对于用户界面设计来讲,为了提升交互体验,通常会使用特定的字体,而这些字体可能无法通过 apt 命令从 debian 软件源安装。这时候就需要手动导入字体文件。下面将介绍这一过程。演示的 Qt5 应用程序将使用小米字体,这是一个可以免费商用的字体。

根据这里的说明创建一个 QML C/C++ 工程,然后简单修改 Torizon Extension 自动生成的 cpp 和 qml 文件,增加中文显示内容。当然也可以直接将该示例工程导入后使用,或者对照修改。

Torizon Extension 提供丰富的功能令用户可以定制所需的 docker 容器。application.buildfiles 可以在构建容器的时候使用 COPY 或者 ADD 命令添加文件。将需要添加的文件复制到工程目录下的 appconfig_0 文件夹中。这里我们使用 MiSans-Regular.ttf 文件,并将其重命名为 MiSans.ttf。

TorizonQt容器中文显示_第1张图片

在 buildfiles 中配置COPY MiSans.ttf /usr/share/fonts/ttf/

TorizonQt容器中文显示_第2张图片

该 Qt 演示程序中我们使用了 qtquick-controls2 组件,因此在 extrapackages 中将其添加进来。

qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-controls2

TorizonQt容器中文显示_第3张图片

然后依次执行 Terminal → Run Task → build_debug 编译 Qt 应用。

    

最后按 F5 开启调试。最后在显示器可以看到运行的 Qt 程序。

TorizonQt容器中文显示_第4张图片

总结

在 Torizon 的 Qt 应用容器中使用中文字体,对于 Qt 代码来是透明,也无需修改代码。用户只要将字体文件通过  Torizon Extension 导入到容器内即可。

你可能感兴趣的:(Torizon)