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

news2025/2/6 4:05:26

在终端中运行下面三句命令用于配置开发板上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渲染界面,并支持触摸输入。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

语言月赛 202412【顽强拼搏奖的四种发法】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202412] 顽强拼搏奖的四种发法 题目描述 在 XCPC 竞赛里,会有若干道题目,一支队伍可以对每道题目提交若干次。我们称一支队伍对一道题目的一次提交是有效的,当且仅当: 在本次提交…

自定义数据集 使用scikit-learn中svm的包实现svm分类

引入必要的库 import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score, classification_report 生成自定义数据集 X, y ma…

有用的sql链接

『SQL』常考面试题(2——窗口函数)_sql的窗口函数面试题-CSDN博客 史上最强sql计算用户次日留存率详解(通用版)及相关常用函数 -2020.06.10 - 知乎 (zhihu.com) 1280. 学生们参加各科测试的次数 - 力扣(LeetCode&…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.27 NumPy+Pandas:高性能数据处理的黄金组合

2.27 NumPyPandas:高性能数据处理的黄金组合 目录 #mermaid-svg-x3ndEE4hrhO6WR6H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-x3ndEE4hrhO6WR6H .error-icon{fill:#552222;}#mermaid-svg-x3ndEE4hr…

第一个3D程序!

运行效果 CPP #include <iostream> #include <fstream> #include <string> #include <cmath>#include <GL/glew.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> #include <glm/gtc/type_ptr.hpp> #include <glm/gtc/…

NeuralCF 模型:神经网络协同过滤模型

实验和完整代码 完整代码实现和jupyter运行&#xff1a;https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main 引言 NeuralCF 模型由新加坡国立大学研究人员于 2017 年提出&#xff0c;其核心思想在于将传统协同过滤方法与深度学习技术相结…

第二十三章 MySQL锁之表锁

目录 一、概述 二、语法 三、特点 一、概述 表级锁&#xff0c;每次操作锁住整张表。锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。应用在MyISAM、InnoDB、BDB等存储引擎中。 对于表级锁&#xff0c;主要分为以下三类&#xff1a; 1. 表锁 2. 元数…

【Uniapp-Vue3】获取用户状态栏高度和胶囊按钮高度

在项目目录下创建一个utils文件&#xff0c;并在里面创建一个system.js文件。 在system.js中配置如下代码&#xff1a; const SYSTEM_INFO uni.getSystemInfoAsync();// 返回状态栏高度 export const getStatusBarHeight ()> SYSTEM_INFO.statusBarHeight || 15;// 返回胶…

通向AGI之路:人工通用智能的技术演进与人类未来

文章目录 引言:当机器开始思考一、AGI的本质定义与技术演进1.1 从专用到通用:智能形态的范式转移1.2 AGI发展路线图二、突破AGI的五大技术路径2.1 神经符号整合(Neuro-Symbolic AI)2.2 世界模型架构(World Models)2.3 具身认知理论(Embodied Cognition)三、AGI安全:价…

将ollama迁移到其他盘(eg:F盘)

文章目录 1.迁移ollama的安装目录2.修改环境变量3.验证 背景&#xff1a;在windows操作系统中进行操作 相关阅读 &#xff1a;本地部署deepseek模型步骤 1.迁移ollama的安装目录 因为ollama默认安装在C盘&#xff0c;所以只能安装好之后再进行手动迁移位置。 # 1.迁移Ollama可…

Java自定义IO密集型和CPU密集型线程池

文章目录 前言线程池各类场景描述常见场景案例设计思路公共类自定义工厂类-MyThreadFactory自定义拒绝策略-RejectedExecutionHandlerFactory自定义阻塞队列-TaskQueue&#xff08;实现 核心线程->最大线程数->队列&#xff09; 场景1&#xff1a;CPU密集型场景思路&…

使用开源项目:pdf2docx,让PDF转换为Word

目录 1.安装python 2.安装 pdf2docx 3.使用 pdf2docx 转换 PDF 到 Word pdf2docx&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 环境&#xff1a;windows电脑 1.安装python Download Python | Python.org 最好下载3.8以上的版本 安装时记得选择上&#…

蓝桥杯思维训练营(四)

文章目录 小红打怪494.目标和 小红打怪 小红打怪 思路分析&#xff1a;可以看到ai的范围较大&#xff0c;如果我们直接一个个进行暴力遍历的话&#xff0c;会超时。当我们的攻击的次数越大的时候&#xff0c;怪物的血量就会越少&#xff0c;这里就有一个单调的规律在里面&…

尝试把clang-tidy集成到AWTK项目

前言 项目经过一段时间的耕耘终于进入了团队开发阶段&#xff0c;期间出现了很多问题&#xff0c;其中一个就是开会讨论团队的代码风格规范&#xff0c;目前项目代码风格比较混乱&#xff0c;有的模块是驼峰&#xff0c;有的模块是匈牙利&#xff0c;后面经过讨论&#xff0c;…

【学习笔记】深度学习网络-正则化方法

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

介绍一下Mybatis的底层原理(包括一二级缓存)

表面上我们的就是Sql语句和我们的java对象进行映射&#xff0c;然后Mapper代理然后调用方法来操作数据库 底层的话我们就涉及到Sqlsession和Configuration 首先说一下SqlSession&#xff0c; 它可以被视为与数据库交互的一个会话&#xff0c;用于执行 SQL 语句&#xff08;Ex…

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架&#xff0c;配合不同主题&#xff0c;可以有多种展现方式&#xff0c;博客、企业官网、CMS系统等&#xff0c;都可以很好的实现。 官网&#xff1a;博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文&#xff0c;这里可…

BUUCTF_[安洵杯 2019]easy_web(preg_match绕过/MD5强碰撞绕过/代码审计)

打开靶场&#xff0c;出现下面的静态html页面&#xff0c;也没有找到什么有价值的信息。 查看页面源代码 在url里发现了img传参还有cmd 求img参数 这里先从img传参入手&#xff0c;这里我发现img传参好像是base64的样子 进行解码&#xff0c;解码之后还像是base64的样子再次进…

C基础寒假练习(4)

输入带空格的字符串&#xff0c;求单词个数、 #include <stdio.h> // 计算字符串长度的函数 size_t my_strlen(const char *str) {size_t len 0;while (str[len] ! \0) {len;}return len; }int main() {char str[100];printf("请输入一个字符串: ");fgets(…

MySQL 事务实现原理( 详解 )

MySQL 主要是通过: 锁、Redo Log、Undo Log、MVCC来实现事务 事务的隔离性利用锁机制实现 原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。 Redo Log(重做日志)&#xff1a;记录事务对数据库的所有修改&#xff0c;在崩溃时恢复未提交的更改&#xff0c;保证事务…