欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 开发板上Qt运行的环境变量的三条设置语句的详解

开发板上Qt运行的环境变量的三条设置语句的详解

2025/2/5 12:36:27 来源:https://blog.csdn.net/wenhao_ir/article/details/145433648  浏览:    关键词:开发板上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作为触摸屏输入设备。关于如何确认哪个设备文件对应触摸屏设备,可以参考我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145433887

这里的重点在于开发板上的Qt要具备什么条件才能使用tslib插件。
你需要确保下面的两部分文件是存在的:
① tslib库安装在开发板上了,安装方法见 https://blog.csdn.net/wenhao_ir/article/details/144621008 【搜索“tslib库安装到开发板上并进行测试”】,由于之前我已经安装并测试了,这里就略过了。
② 开发板上有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
这里关键还是如何确认/dev/fb0对应的是LCD屏,如何确认的方法见 https://blog.csdn.net/wenhao_ir/article/details/145438283

  • 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/

在这里插入图片描述https://blog.csdn.net/wenhao_ir/article/details/145438538
可见有一个名叫 msyh.ttc 的字体文件。关于字个字体文件的介绍和来历,见博文 https://blog.csdn.net/wenhao_ir/article/details/145438538
设置这个目录后, Qt 会自动从 /usr/lib/fonts/ 目录加载 msyh.ttc 作为默认字体。

总结:

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

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com