Qt Embedded:简介与平台插件介绍

本文介绍了Qt Embedded在嵌入式Linux设备上的应用,包括Qt/E的特性、编译流程和多种平台插件如EGLFS、LinuxFB、DirectFB、XCB和Wayland的详细解析,强调了环境变量配置和字体处理。Qt/E通过摒弃Xlib,直接写入帧缓冲,以适应嵌入式环境,并提供不同的编译和运行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见的嵌入式 Linux 图形界面有 Qt/Embedded、DirectFB、MicroWindows/NanoX、MiniGUI 和 OpenGUI 等,每个 GUI 都有各自不同特点和应用场合,在应用编程上也各不相同。而对于 Qt 来说,按照不同的图形界面来划分,分为四个版本:

  • Win32 版:适用于 Windows 平台
  • X11 版:适用于各种X系统的 Linux 和 Unix 平台
  • Mac 版:适用于苹果的 MacOS
  • Embedded 版:适用于具有帧缓冲(Frame buffer)的 Linux 平台

一、Qt/Embedded介绍

嵌入式 Linux 发行版上的 Qt 属于 Qt 的 Embedded Linux 分支平台(本文简称为 Qt/E)。Qt/E 在原始 Qt 的基础上,做了许多出色的调整以适合嵌入式环境。同桌面版的 Qt/X11 相比,嵌入式的 Qt/E 很节省内存,因为它不需要 X server 或是 Xlib 库,它在底层摒弃了 Xlib,采用 Framebuffer(帧缓冲)作为底层图形接口。Qt/E 的应用程序可以直接写内核帧缓冲,这避免开发者使用繁琐的 Xlib/Server 系统。下图所示比较了 Qt/E 与 Qt/X11 的架构区别。

二、编译流程

Qt/E 所面对的硬件平台较多,当开发人员需要在某硬件平台上移植 Qt/E 时,需要下载 Qt 源代码,利用交叉编译器编译出 Qt 库,接着需要将 Qt 库复制两份,一份放置在开发主机上,供编译使用,一份放在目标板上,供运行时动态加载使用。具体流程如下图所示。

开发要用到的东西:Qt 源代码 + 交叉编译器 + 一个灵活有创造性的大脑。

使用交叉编译器编译好的 Qt 库要在 LINUX 虚拟机和嵌入式开发板上各一份,有了这个库,我们就可以在上面尽情的编写 Qt 程序了!(如果需要触摸功能,记得要移植一个开源程序 tslib,它相当于底层驱动和上层应用的接口,有效的处理防抖误操作等触摸问题)。

程序搞定了,那我们如何编译呢?有多种方式:

  • 直接使用Qt qmake工具编译;
  • 使用Qt Creator软件直接编译;
  • 市场上的一些第三方编译工具。

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

三、嵌入式 Linux 设备的平台插件

在嵌入式 Linux 系统上,可以使用多个平台插件:EGLFS,LinuxFB,DirectFB 或 Wayland。但是,这些插件的可用性取决于 Qt 的配置方式。

EGLFS 是许多主板上的默认插件。如果不合适,请使用QT_QPA_PLATFORM环境变量来请求另一个插件。另外,对于快速测试,请使用-platform具有相同语法的命令行参数。从 Qt 5.0 开始,Qt 不再用自己的窗口系统(QWS)。

3.1 EGLFS

EGLFS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值