嵌入式GUI与Qt/Embedded

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
     由于开发中使用的开源嵌入式3D图形库Klimt是基于OpenGL 和OpenGL|ES的,而OpenGL和OpenGL|ES需要有嵌入式GUI的支持,以提供给它与图形设备的接口,以便把三维图像显示给用户。所以我需要选择一种嵌入式GUI系统,然后把它移植到嵌入式Linux上,再有是把基于OpenGL的Klimt移植到这个GUI上。
    通过对几种嵌入式GUI的详细比较,并且结合我的嵌入式3D开发的要求,我决定选择Qt/Embedded 作为我开发的嵌入式GUI,对于研究用途,它是GPL授权的,比较高效,可移植性很强,QT提供丰富的调试和开发工具,有丰富的图形开发接口。
    接下来我们需要对Qt/Embedded进行到嵌入式Linux上的移植。下面我们可以简称Qt/Embedded为QtE。
.1 配置Qt/Embedded移植环境
Qt/Embedded的移植过程中需要用到一些工具或者一些环境设置,所以在移植之前我们需要对这些工具或环境进行配置。
.1.1 配置交叉编译工具链
对于ARM架构的嵌入式处理器,互联网上有自由的ARM Linux 交叉编译工具链,工具链中包括一切交叉编译我们的ARM平台程序时使用的编译程序,链接程序,优化程序,常用的函数库等等。获得后交叉工具链后只要安装在PC机上的文件系统就可以供我们使用。
.1.2 配置环境设置
移植Qt/Embedded过程中,它需要在环境设置中读取交叉编译链的路径,以便实现到目标机器ARM平台的交叉编译,而不是x86平台的编译;还有读取动态连接库的路径等等,指定Qt/Embedded交叉编译过程中需要使用的函数库。
那么我们需要设置的是
交叉编译工具的路径,我需要使用的交叉编译工具是armv4l-unknown-linux工具,那么我要把先前交叉编译工具链的路径加入到名称为PATH的环境变量中。可以使用export系统命令设置,或者在系统配置文件中进行设置。
指定Qt/Embedded的路径。Qt/Embedded交叉编译时需要使用的它存放目录的qmake(QtE程序Makefile生成程序),moc,qws交叉编译配置等工具,所以我们需要把QTDIR环境变量设置为Qt/Embedded的目录,还有把Qt/Embedded交叉编译后的核心库存放的路径加入到LD_LIBRARY_PATH环境变量中,以便编译QTE程序时链接时使用。
.2 定制Qt/Embedded
由于Qt/Embedded是以面向多领域应用的嵌入式GUI系统,所以针对目前的嵌入式3D开发,它有许多模块和特性是我们不需要的,这样我们就可以根据自己的需求,对Qt/Embedded进行定制,去掉一些不需要的特性或模块,也可以添加需要的特性或者模块。
Qt/Embedded 有专门的一个configure 脚本可以帮助我们定制,而不用手动定制。
首先我们需要指定交叉编译目标平台的配置参数“-xplatform”,这个参数可以指定一个用于目标平台编译配置文件,文件里指定了所要使用的交叉编译工具,这要视你选择的交叉编译链而定;还有是一些编译参数。Qt/Embedded的嵌入式移植都是用QWS(Qt Window System)模式,所以编译配置文件的编写可以参考它自带的一些编译配置文件,或者如果自带的编译配置文件里有跟你的意愿是一样的,可以直接使用。
然后使用“-depths” 指定颜色深度列表,Qt/Embedded 支持多种颜色深度,有4,8,16,32,这对后面的3D程序很重要,我的开发板上的LCD的颜色深度是16位,所以配置时 16是肯定要的,否则三维图像的颜色显示将会出现问题。
其次可以使用“-no”“-disable”参数去掉一些不使用的模块,如cups模块,stl模块,xml模块等。这样可以大大减少Qt/Embedded核心库的大小,有利于节省嵌入式设备的存储空间。
.3 交叉编译Qt/Embedded
可完全编译,包括例子,也可以只编译Qt/Embedded的核心库。编译后得到Qt/Embedded的动态链接核心库,以备接下来开发QtE程序开发和移植Klimt移植之用。
.4 开发Qt/Embedded程序,并在开发板上调试运行
由于接下来的3D程序都是基于QtE系统的,所以必须了解QtE程序开发调试的一些基本流程。
由于QtE是完全使用C++开发的系统,所以一般QtE程序也使用C++进行开发。保证可读性和可扩展性。对于使用QtE GUI的嵌入式应用程序,一般继承QtE的QWidget 或者其子类,然后在代码中定制自己的功能。在每个QtE程序中必须有一个QApplication的实例,通过这个实例,初始化你自己继承QWidget或其子类的对象,通过调用QApplication的相关方法就可以运行QtE的GUI程序了。下面是一个示例:
#include <qapplication.h>
#include <qlabel.h>
int main(int argc, char **argv)
{
    QApplication app (argc, argv);
    QLabel *hello = new QLabel("<h2><fontcolor=blue>Hello<i>Qt/Embedded!</i> </font> </h2>", 0);
    app.setMainWidget(hello);
    hello->show();
    return app.exec();
}

交叉编译好后就可以通过前面已经配置好NFS网络文件共享对QtE程序进行在开发板上的调试运行。
QtE的嵌入式程序运行时是需要添加“-qws参数”,意思是指定QtE程序以QWS(Qt Window System)模式运行。
Qt Embedded:简介平台插件介绍 嵌入式 Linux 发行版上的 Qt 属于 QtEmbedded Linux 分支平台(本文简称为 Qt/E)。Qt/E 在原始 Qt 的基础上,做了许多出色的调整以适合嵌入式环境。同桌面版的 Qt/X11 相比,嵌入式Qt/E 很节省内存,因为它不需要 X server 或是 Xlib 库,它在底层摒弃了 Xlib,采用 Framebuffer(帧缓冲)作为底层图形接口。Qt/E 的应用程序可以直接写内核帧缓冲,这避免开发者使用繁琐的 Xlib/Server 系统。 阅读详情

相关推荐

QT——GUI软件

一:QT/E        QT/E 即Qt Embedded是挪威Trolletch公司的图形化界面开发工具Qt嵌入式版本,它通过QtAPILinuxI/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式。 Qt/Embedded在原始Qt的基础上,做了许多出色的调整以适合嵌入式环境。同Qt/X11相比,Qt/Embedded

manchestermi的博客 1002

Qt/Embedded简介

from http://hi.baidu.com/shlongli/blog/item/7fb5830f1b7c9be8ab6457c2.html1、 Qt/Embedded体系结构 Qt/Embedded是基于Qt嵌入式GUI和应用程序开发工具包,它可运行多种嵌入式设备上,主要运行在嵌入式Linux系统上,并且需要C++编译器的支持,并为嵌入式应用程序提供Qt的标准API。 Qt/Emb

hh2000的专栏 2865

ARM9嵌入式Linux开发-嵌入式GUI开发

GUI的一般架构 图形用户界面GUI(Graphics User Interface)是迄今为止计算机系统中最为成熟的人机交互技术。一个好的图形用户界面的设计不仅要考虑到具体硬件环境的限制,而且还要考虑到用户的喜好等。 由于图形用户界面的引入主要是从用户角度出发的,因此用户自身的主观感受对图形用户界面的评价占了很大比重,比如,易用性、直观性、友好性,等等。另外,从纯技术的角度看,仍然也会有一些标准需要考虑,比如,跨平台性、对硬件的要求等。在嵌入式系统开发和应用中,我们所考虑的问题主要集中在图形用户界面对

ce123的技术博客 1723

Qt/Embedded嵌入式Linux系统下的移植应用

Qt/Embedded嵌入式Linux系统下的移植应用 1 Qt/Embedded开发环境介绍         Qt/Embedded应用程序的开发可以在安装了一个跨平台开发工具链的不同的平台上编译。系统采用的是在Linux平台下开发,在Linux平台下以虚拟缓冲帧的方式来运行,其实是有一个X11的应用程序虚拟了一个缓冲帧。通过指定显示设备的宽度、高度和颜色深度,虚拟出来的缓冲帧将和物

yhc1991的专栏 1696

QTQT/Embeded 介绍

在公司折腾了3个月,我的工作内容终于确定下来了。Linux 嵌入式QT embeded,偏上层。         我不知道在别的公司怎么样,我现在在的这个公司,喜欢把人当全才。其实也不是不好,但是我个人更喜欢,先专再泛,还好的是这个在这个公司不会很累,所以我也有时间弄弄自己感兴趣的东西。我所感兴趣的是,Linux 嵌入式,偏底层。         大四时才知道QT,(参加工作后觉得自己在大学

HappyJandun's 学习笔录 2072

Qt/Embedded编译安装

本文介绍了Qt/Embedded的编译安装的详细详细过程,包括简要介绍了Qt/Embedded的安装的前期准备——交叉编译链的安装,tslib 的编译安装。对Qt/Embedded的./configure 配置的常用参数进行了说明。

KwanSampson的专栏 1万+

基于Qt/Embedded嵌入式Linux GUI的移植开发

 摘 要:本文简要阐述嵌入式Linux GUI用途及前景,分析了几种嵌入式GUI的基本架构,并详细叙述了基于Qt/Embedded图形用户系统在s3c2410处理器上的移植开发步骤,粗略指出了Qt/Embedded的优缺点,可为嵌入式GUI开发者提供实用参考。 关键词:嵌入式Linux Qt/Embedded移植 GUI 1.概述 我们时常在PC机上看到WINDOWS图形用户界面,以及LINUX

LinuxBoy1985 5516

基于Qt/Embedded嵌入式GUI设计

<br />建立Qt/Embedded开发环境 安装x86-qtopia源代码 # tar xvzf x86-qtopia.tgz –C /sbc2410 # cd /sbc2410/x86-qtopia #./build (shell 程序) 安装SBC-2410X版本的arm-qtopia源代码 #tar xvzf arm-qtopia.tgz –C /sbc2410 # cd /sbc2410/x86-qtopia #./build (shell 程序) 当在PC上模拟Qtop

DameinLee的世界 1003

嵌入式linux Qt图形编程,Qt图形编程基础之:嵌入式GUI简介

本文引用地址:http://www.eepw.com.cn/article/257104.htm12.1嵌入式GUI简介目前的桌面机操作系统大多有着美观、操作方便、功能齐全的GUI(图形用户界面),例如KDE或者GNOME。GUI(图形用户界面)是指计算机其使用者之间的对话接口,可以说,GUI是当今计算机技术的重大成就。它的存在为使用者提供了友好便利的界面,并大大地方便了非专业用户的使用,使得人...

weixin_29720641的博客 538

Qt/Embedded图形化开发

完整 编译 qte 空间 大于 1g 时间 大于 50分钟 熬吧 http://www.dzkf.cn/html/qianrushixitong/2007/1108/2771.html嵌入式GUI嵌入式系统提供了人机交互界面, 大大方便了嵌入式系统的人机交互,进而加速了嵌入式系统的流行。无论是智能手机、PDA还是MP4、PMP (个人媒体播放器)的流行,

bloghome的专栏 1460

基于Qt/EmbeddedQtopia的GUI设计

基于Qt/EmbeddedQtopia的GUI设计 王丽洁,习勇,魏急波 (国防科技大学 电子科学工程学院 湖南省 长沙市 410073) 摘要:介绍了Qt/EmbeddedQtopia的体系结构及其交叉编译过程安装过程,重点讲述了如何实现Qt/Embedded下的应用程序以及如何将应用程序移植到Qtopia桌面系统。本文介绍的方法在笔者的开发平台上都做过验证。 关键词:嵌入式系统

dxy331的专栏 808

嵌入式Linux常用GUI系统

嵌入式Linux常用GUI系统 【整理】嵌入式Linux中常用的GUI(图形用户界面)系统 Embeddedcrifan7年前 (2012-08-31)1502浏览0评论 网上找了一堆资料,还是这里: Embedded Linux Graphics System 的解释是,最新的,最全的,逻辑也是最清晰的。 所以,简单摘录其分类,并整理如下: 1.Linux中...

行知致简的专栏 9845

Qt/Embedded 简介

1、 Qt/Embedded体系结构 Qt/Embedded是基于Qt嵌入式GUI和应用程序开发工具包,它可运行多种嵌入式设备上,主要运行在嵌入式Linux系统上,并且需要C++编译器的支持,并为嵌入式应用程序提供Qt的标准API。 Qt/Embedded 的API是基于面向对象技术的。在应用程序开发上使用Qt相同的工具包,只需在目标嵌入式平台上重新编译即可。使用所熟悉的桌面开发工具

Dansley的专栏 1492

嵌入式GUI的相关比较(minigui,qte)一月份读书笔记

 一、MicrowindowsMicrowindows是一个典型的基于Server/Clinent体系结构的GUI系统 他分为三层 显示设备、输入设备,窗口管理硬件抽象层,Nano-X、ECMA APIW。最底层是面向图形显示和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于X Window和ECMA APIW(Win32子集)的API。

scaleyuming的专栏 2978

嵌入式 GUI 简介

嵌入式 GUI 简介

2302_78663693的博客 1658

嵌入式Linux系统中的GUI系统的研究移植

引言嵌入式GUI嵌入式系统提供了一种应用于特殊场合的人们交互接口。嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性可裁减性,以适应不同的硬件条件和使用需求。总体来讲,嵌入式GUI具备以下特点:*体积小;*运行时耗用系统资源小;*上层接口

打印/传真嵌入式开发--张志龙的专栏 2563
上一篇: 基于Qt/Embedded的GUI移植及无线网络功能的开发
下一篇: 浅析Windows开发时用到的本机API
bisword
博客等级 码龄25年 96粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值