TorizonQt容器中文显示
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。
在 buildfiles 中配置COPY MiSans.ttf /usr/share/fonts/ttf/
该 Qt 演示程序中我们使用了 qtquick-controls2 组件,因此在 extrapackages 中将其添加进来。
qml-module-qtquick2 qml-module-qtquick-window2 qml-module-qtquick-controls2
然后依次执行 Terminal → Run Task → build_debug 编译 Qt 应用。
最后按 F5 开启调试。最后在显示器可以看到运行的 Qt 程序。
总结
在 Torizon 的 Qt 应用容器中使用中文字体,对于 Qt 代码来是透明,也无需修改代码。用户只要将字体文件通过 Torizon Extension 导入到容器内即可。
提交
Verdin AM62 LVGL 移植
基于 NXP iMX8MM 测试 Secure Boot 功能
隆重推出 Aquila - 新一代 Toradex 计算机模块
Verdin iMX8MP 调试串口更改
NXP iMX8MM Cortex-M4 核心 GPT Capture 测试