问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

开发板上Qt运行的环境变量配置详解

创作时间:
作者:
@小白创作中心

开发板上Qt运行的环境变量配置详解

引用
CSDN
1.
https://m.blog.csdn.net/wenhao_ir/article/details/145433648

在嵌入式开发中,正确配置Qt环境变量对于实现触摸输入、图形渲染和字体显示等功能至关重要。本文将详细介绍在IMX6ULL等开发板上配置Qt环境变量的具体步骤和参数含义,帮助开发者快速上手嵌入式Qt应用开发。

在终端中运行下面三句命令用于配置开发板上Qt运行的环境变量:

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_FONTDIR=/usr/lib/fonts/

设置成功后可以用下面的语句检查设置是否成功:

echo $QT_QPA_GENERIC_PLUGINS
echo $QT_QPA_PLATFORM
echo $QT_QPA_FONTDIR

这几行环境变量的设置主要是为了在IMX6ULL等嵌入式开发板上运行Qt应用程序,指定输入设备、显示方式和字体目录。

如果想让结果一直生效,可以编辑文件 /etc/profile,在后面追加上上面三条语句:

vi /etc/profile

这三条命令分别解释如下:

第1句配置命令

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1

作用:
指定Qt使用 tslib 插件来处理触摸输入,并设定输入设备为 /dev/input/event1

  • QT_QPA_GENERIC_PLUGINS:用于设置Qt的通用输入插件,如 tslib(触摸屏库)。
  • tslib:/dev/input/event1:表示使用 tslib 插件,并将设备文件 /dev/input/event1 作为触摸屏输入设备。

这里的重点在于开发板上的Qt要具备什么条件才能使用 tslib 插件。你需要确保下面的两部分文件是存在的:

  1. tslib库安装在开发板上了
  2. 开发板上有Qt提供的tslib插件文件 libqtslibplugin.so,其路径如下:
/usr/lib/qt/plugins/generic/libqtslibplugin.so

用下面的命令查看目录 /usr/lib/qt/plugins/generic/ 下的文件:

ls /usr/lib/qt/plugins/generic/

可见 libqtslibplugin.so 是存在的。

第2句配置命令

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

作用:指定Qt使用 linuxfb(Linux framebuffer)作为图形输出方式,并设定帧缓冲设备为 /dev/fb0

  • QT_QPA_PLATFORM:定义Qt的图形后端(QPA,即Qt Platform Abstraction)。
  • linuxfb:指明使用Linux的Framebuffer(帧缓冲)作为显示后端。
  • fb=/dev/fb0:指定具体的帧缓冲设备,一般 /dev/fb0 是主显示设备。

第3句配置命令

export QT_QPA_FONTDIR=/usr/lib/fonts/

作用:指定Qt应用程序的字体目录,使其能够正确加载字体文件。

  • QT_QPA_FONTDIR:定义Qt字体文件的搜索路径。
  • /usr/lib/fonts/:该目录下通常包含 .ttf.fon 等字体文件,确保Qt GUI应用可以正确显示文本。

我们可以去看下目录 /usr/lib/fonts/ 下有没有字体文件:

ls /usr/lib/fonts/

可见有一个名叫 msyh.ttc 的字体文件。设置这个目录后,Qt 会自动从 /usr/lib/fonts/ 目录加载 msyh.ttc 作为默认字体。

总结

这几行环境变量的作用是:

  1. 让Qt使用 tslib 处理触摸输入,并指定触摸屏设备。
  2. 让Qt使用Framebuffer进行图形渲染,并指定帧缓冲设备。
  3. 指定Qt的字体目录,确保UI能正确显示文本。

这样设置后,Qt应用程序可以在IMX6ULL等嵌入式Linux系统上通过Framebuffer渲染界面,并支持触摸输入。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号