开发板上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渲染界面,并支持触摸输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/964266.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PyQt】pyqt小案例实现简易文本编辑器

pyqt小案例实现简易文本编辑器 分析 实现了一个简单的文本编辑器,使用PyQt5框架构建。以下是代码的主要功能和特点: 主窗口类 (MyWindow): 继承自 QWidget 类。使用 .ui 文件加载用户界面布局。设置窗口标题、状态栏消息等。创建菜单栏及其子菜单项&…

Java 数据库连接池:HikariCP 与 Druid 的对比

Java 数据库连接池:HikariCP 与 Druid 的对比 数据库连接池:HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化,减少了不必要的开销,使得连接获取和释放的速度极快。 在…

PHP实现混合加密方式,提高加密的安全性(代码解密)

代码1&#xff1a; <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密&#xff08;CBC模式&#xff09…

Turing Complete-3位解码器

要求如下&#xff1a; 就是搭建一个3-8译码器 思路一&#xff1a; 使用四种判断来解决问题。 判断一&#xff1a;3个输入中是否有0个绿色。 解决办法&#xff1a;三个输入通过三输入或门再取反。 判断二&#xff1a;3个输入中是否有1个绿色&#xff0c;并确定是输入1、输入…

我主编的电子技术实验手册(24)——RL并联电路

本专栏是笔者主编教材&#xff08;图0所示&#xff09;的电子版&#xff0c;依托简易的元器件和仪表安排了30多个实验&#xff0c;主要面向经费不太充足的中高职院校。每个实验都安排了必不可少的【预习知识】&#xff0c;精心设计的【实验步骤】&#xff0c;全面丰富的【思考习…

手写MVVM框架-模板渲染1

虚拟dom创建好了&#xff0c;依赖也收集好了&#xff0c;这个时候就该去渲染dom了&#xff0c;把页面上的 { {name}} 渲染成具体的值。 渲染之前我们给原型上添加一个render方法 //代码在src/core/render.jsexport function renderMixin(MiniVue) {MiniVue.prototype.$render …

人类心智逆向工程:AGI的认知科学基础

文章目录 引言:为何需要逆向工程人类心智?一、逆向工程的定义与目标1.1 什么是逆向工程?1.2 AGI逆向工程的核心目标二、认知科学的四大支柱与AGI2.1 神经科学:大脑的硬件解剖2.2 心理学:心智的行为建模2.3 语言学:符号与意义的桥梁2.4 哲学:意识与自我模型的争议三、逆向…

【C语言篇】“三子棋”

一、游戏介绍 三子棋&#xff0c;英文名为 Tic - Tac - Toe&#xff0c;是一款简单而经典的棋类游戏。游戏在一个 33 的棋盘上进行&#xff0c;两名玩家轮流在棋盘的空位上放置自己的棋子&#xff08;通常用 * 和 # 表示&#xff09;&#xff0c;率先在横、竖或斜方向上连成三个…

尝试ai生成figma设计

当听到用ai 自动生成figma设计时&#xff0c;不免好奇这个是如何实现的。在查阅了不少资料后&#xff0c;有了一些想法。参考了&#xff1a;在figma上使用脚本自动生成色谱 这篇文章提供的主要思路是&#xff1a;可以通过脚本的方式构建figma设计。如果我们使用ai 生成figma脚本…

【玩转 Postman 接口测试与开发2_015】第12章:模拟服务器(Mock servers)在 Postman 中的创建与用法(含完整实测效果图)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十二章 模拟服务器&#xff08;Mock servers&#xff09;在 Postman 中的创建与用法1 模拟服务器的概念2 模拟服务器的创建2.1 开启侧边栏2.2 模拟服务器的两种创建方式2.3 私有模拟器的 API 秘钥的用法…

Java面试题2025-并发编程基础(多线程、锁、阻塞队列)

并发编程 一、线程的基础概念 一、基础概念 1.1 进程与线程A 什么是进程&#xff1f; 进程是指运行中的程序。 比如我们使用钉钉&#xff0c;浏览器&#xff0c;需要启动这个程序&#xff0c;操作系统会给这个程序分配一定的资源&#xff08;占用内存资源&#xff09;。 …

Android学习19 -- 手搓App

1 前言 之前工作中&#xff0c;很多时候要搞一个简单的app去验证底层功能&#xff0c;Android studio又过于重型&#xff0c;之前用gradle&#xff0c;被版本匹配和下载外网包折腾的堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想知道一些简单的app怎么能手搓一下&#x…

实验六 项目二 简易信号发生器的设计与实现 (HEU)

声明&#xff1a;代码部分使用了AI工具 实验六 综合考核 Quartus 18.0 FPGA 5CSXFC6D6F31C6N 1. 实验项目 要求利用硬件描述语言Verilog&#xff08;或VHDL&#xff09;、图形描述方式、IP核&#xff0c;结合数字系统设计方法&#xff0c;在Quartus开发环境下&#xff…

< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析

起因 两个 VPM/VPS&#xff0c;安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长&#xff0c;以前复制屏幕输出就行&#xff0c;一屏的内容还容易粘贴出来的。昨天已经过 500 条&#xff0c;好奇 fail2ban 是如何存储这些内容的&#xff1f;就发现它在使用 SQLite3 数…

通过IP地址查看终端具体位置

最近关于deepseek的热度不断&#xff0c;无论是deepseek的优秀性价比和能力&#xff0c;以及deepseek遭受到海外攻击然后国内反击的AI上甘岭&#xff0c;随之而来的是铺天盖地的营销号&#xff0c;要擦亮自己的眼睛&#xff0c;要勇于质疑和证实网络言论的真实性。 其中一点&am…

【Linux探索学习】第二十八弹——信号(下):信号在内核中的处理及信号捕捉详解

Linux学习笔记&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在前面我们已经学习了有关信号的一些基本的知识点&#xff0c;包括&#xff1a;信号的概念、信号产生和信号处理等&#xff0c;今天我们重…

【Redis】主从模式,哨兵,集群

主从复制 单点问题&#xff1a; 在分布式系统中&#xff0c;如果某个服务器程序&#xff0c;只有一个节点&#xff08;也就是一个物理服务器&#xff09;来部署这个服务器程序的话&#xff0c;那么可能会出现以下问题&#xff1a; 1.可用性问题&#xff1a;如果这个机器挂了…

1.PPT:天河二号介绍【12】

目录 NO1 NO2.3.4.5 NO6.7.8.9​ NO1 PPT&#xff1a;新建一个空白演示文档→保存到考生文件夹下&#xff1a;天河二号超级计算机.pptx幻灯片必须选择一种设计主题&#xff1a;设计→主题&#xff08;随便选中一种&#xff09;幻灯片的版式&#xff1a;开始→版式&#x…

基于python的体育新闻数据可视化及分析

项目 &#xff1a;北京冬奥会体育新闻数据可视化及分析 摘 要 随着社会的不断进步与发展&#xff0c;新时代下的网络媒体获取的信息也更加庞大和繁杂&#xff0c;相比于传统信息来源更加难以分析和辨别&#xff0c;造成了新时代媒体从业者撰写新闻的难度。在此背景下&#xff…

WPS计算机二级•幻灯片的配色、美化与动画

听说这是目录哦 配色基础颜色语言❤️使用配色方案&#x1fa77;更改PPT的颜色&#x1f9e1;PPT动画添加的原则&#x1f49b;PPT绘图工具&#x1f49a;自定义设置动画&#x1f499;使用动画刷复制动画效果&#x1fa75;制作文字打字机效果&#x1f49c;能量站&#x1f61a; 配色…