几种常用嵌入式GUI设计讲解
5嵌入式GUI
北林信息学院软件教研室
MiniGUI
MiniGUI是由中国人主持的,并由许多自由软 件开发人员支持的一个自由软件项目,其目标 是为实时嵌入式Linux系统建立一个快速、稳 定和轻量级的图形用户界面支持系统,遵循 LGPL条款。比较适合工控领域的应用。 MiniGUI的特点:
方便的编程接口 使用了图形抽象层和输入抽象层、多字体和多字
完整的一套组件工具
Qt编程的基本模块称之为组件,组件是用户界面的组成部
分,Qt含有用来创建专业外观的用户界面所需要的所有组 件
2013-7-24 北林信息学院软件教研室
Qt的历史
Trolltech公司在1994年成立 1995年5月26日,Qt的第一个商业版本Qt0.90可以在 Windows和UNIX两种平台上进行应用程序开发, Qt0.90为两个平台提供了相同的API。 Trolltech公司为Qt提供了两种授权模式,一种用于 商业性质的授权,另一种用于免费的开源授权。 1996年5月底Qt0.97发布 1996年9月24日Qt1.0出现 1996年年底Qt1.1发布 1997年4月发布Qt1.2,同年9月发布Qt1.3 1998年9月发布Qt1.4
嵌入式 Linux下的几种 GUI 系统架构比较
嵌入式 Linux下的几种 GUI 系统架构比较1、嵌入式的 GUI 系统的特点:∙体积小大部分嵌入式系统用的 flash 大都以 16mb 或 32mb 为主,在这样苛刻的环境底下只有把软件尽量压小。
∙耗系统资源少o手持式设备这类嵌入式系统如:PDA、手机,最注重的就是系统资源及省电功能,在省电的前提下 CPU 速度不能太高,运算速度越快越耗电而且散热也会成为大问题。
o非手持式设备如:Set Top Box、部份 WebPAD,这类系统主要考虑点在硬件成本。
∙系统独立嵌入式系统的一大特色就是硬件差异大,并不像 PC 一般全都 x86 架构。
纵使底层硬件差异大,上层 GUI 系统依旧需要表现出统一的接口,所以担任嵌入式 GUI 系统必须尽量与硬件无关,最好的情形是在 GUI 系统与硬件中间有一层系统负责隔离,所幸已经有 Linux kernel 可以扮演这个角色。
2、几种常见的嵌入式GUI系统2.1 Qt Embedded∙概述Qt 是 Trolltech公司所开发的一个商业化跨平台FrameWork环境,在 X 底下可以看作是一套功能完整的 UI Toolkits,采用类似 C++ 的语法以及具备对象导向功能,跨平台的特性可以让使用 Qt 撰写的软件,只写一次程序就可以在 Microsoft Windows 95/98/2000, Microsoft Windows NT, MacOS X, Linux, Solaris, HP-UX, Tru64 (Digital UNIX), Irix, FreeBSD, BSD/OS, SCO and AIX 这些平台执行。
虽然是商业公司的产品,但是 Qt 走的却是 Open Source 的路子,并遵循同样的游戏规则,除了提供免费下载以外,全部都是开放原始码,非商业用途亦采用 GPL 的版权宣告,著名的 Open Source 『 KDE 』 Project 便是采用 Qt 所发展。
基于嵌入式的GUI设计分析
基于嵌入式的GUI设计分析摘要:目前,围绕着智能家用电器的嵌入式技术得到了迅速的发展,其在办公自动化、消费电子、通讯设备、智能仪器以及军用电子设备等方面得到了广泛的使用。
有些设备还采用了液晶显示屏,随着手持式设备的硬件条件的改善,嵌入式系统对良好GUI系统的要求会变得更加紧迫。
相比普通GUI,在嵌入式环境下,GUI具有重量轻、资源占用少、高性能、高可靠性和可配置等优点,而目前基于GUI的嵌入式GUI研究刚刚开始,还有很多技术难点需要突破。
基于此,我们给出了一种基于嵌入式的GUI软件架构的实现方法。
该方法所实现的GUI系统不但具有良好的普适性,而且还具有很强的灵活性。
关键词:嵌入式;GUI设计;有关分析前言笔者对多种可供选择的嵌入式GUI的方法进行了全面的对比,并将其与嵌入式系统的特性相联系,对嵌入GUI中的一些主要技术进行了深入的探讨,从而给出了一种具有一般意义的嵌入式GUI的设计思路和架构,该方案具有重量轻、占用资源少、可剪裁等优点。
不会给使用者的操作带来烦琐、不直观等问题,也将会让软件开发人员很困难,难以在此操作系统上快速、有效地设计出一个接口友好的应用软件。
1、嵌入式图形用户界的应用现状与发展前景嵌入式图形用户界面技术是一门新兴的学科,它是一门新兴的学科。
虽然Linux是目前应用最广泛的一种嵌入式操作系统,但是在很多嵌入式产品中也有使用 Linux操作系统,这为嵌入式图形用户界面的实现打下了良好的基础。
但是,受 Xfree86规范的制约,目前 Linux上所采用的图形用户界面设计方法过于繁重,效率不高,还不能应用于嵌入式系统。
虽然很多公司都或多或少地降低了 X的使用范围,但是整个嵌入式系统的能力还是太大了,大到让人难以接受。
为此,国内外学者提出了多种基于嵌入式 GUI的开发平台。
当前,以 Linux为基础的主要嵌入式图形用户界面开发平台有以下几种:1.1MicroWindowsMicrowindows是很早就推出的一款开放源码的嵌入式图形用户界面开发软件。
几种GUI比较
几种嵌入式GUI介绍一、MicroWindowsCentury软件公司维护的,较早出现的开放源代码的嵌入式嵌入式GUI特点:1主要特色:提供较为完善的图形功能,支持多种外部设备输入,包括LCD、鼠标和键盘等。
2核心是基于显示设备接口的,绝大部分使用C语言开发的,移植性很强。
3主要在linux、wince等操作系统上运行。
4对硬件资源的需求:文件存储空间:100k-600k输入输出接口:支持frambuffer ,支持每像素1、2、4、8、16、24、32.支持彩色和灰度显示。
支持鼠标、键盘、触摸屏。
CPU:支持intel 16位32位,MIPS R4000、ARM。
二、Qt/Embedded(简称QtE)QtE是一个专门为嵌入式系统设计图形用户界面的工具包,挪威Trolltech 公司产品。
1995年正式发行第一个版本Qt0.9。
Linux桌面系统的KDE 就是基于Qt库开发的,Qt与linux操作系统的兼容性最好。
特点:1主要特色:支持多种平台,移植时只需重新编译代码而不需要对代码进行修改。
2模块化,可剪裁,极其适合嵌入式系统的“小而快”的要求。
3用C++编写,为开发者提供清晰的框架。
4 For free 版本代码完全开放。
三、uc/GUIuC/GUI是一个通用的嵌入式应用的图形模块,它是美国Micrium公司开发的一种高效的、与处理器和LCD控制器独立的通用GUI,可以适用各种CPU和LCD,uC/GUI完全以ANSI-C编写,因此它与处理器无关,在单任务和多任务操作系统都可以很好的应用、可以很方便地移植到不同的操作系统和嵌入式微处理器上,并可支持不同尺寸的图形液晶显示器。
它采用层次化的设计,功能强大,移植方便,被广泛地应用于嵌入式领域,如PDA、机顶盒以及DVD NCD播放机等(1)支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI-C编译器即可;(2)所有硬件接口定义都使用可配置的宏;(3)字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址;(4)所有程序在长度和速度方面都进行了优化,结构清晰;(5)对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度。
嵌入式GUI及应用 A
基于主流GUI的应用程序设计
MiniGUI安装与配置 基于MiniGUI的应用程序设计 Android开发环境 基于Android的应用程序设计
MiniGUI安装
MiniGUI v1.6.10主要有源代码包、资源包、游戏 等演示程序构成
qvfb-1.1.tar.gz:由Qt提供的虚拟FrameBuffer的X11 libpng_src.tgz:支持PNG展现的库的源代码包 jpegsrc.v6b.tar.gz:支持JPEG的源代码包 games-1.6.10.tar.gz:运行在MiniGUI上的小游戏的
嵌入式GUI简介
GUI是Graphical User Interface的简称, 即图形用户界面
一种结合计算机科学、美学、心理学、行 为学,及各商业领域需求分析的人机系统 工程,强调人—机—环境三者作为一个系 统进行总体设计
嵌入式GUI就是嵌入式产品的屏幕视觉体验 和互动操作部分
嵌入式GUI特点(1)
GUI是当今计算机发展的重大成就之一,他 方便了非专业用户,避免记忆大量的命令, 取而代之的是可以通过窗口、菜单、按键 等方式来方便地进行操作
GUI的出现是PC应用的一个分水岭 嵌入式GUI具有以下基本特点:轻型、占用
资源少、高性能、高可靠性、便于移植、 可配置。
嵌入式GUI特点(2)
与操作系统结合的GUI 外挂GUI平台 简单GUI
几种GUI比较
几种嵌入式GUI介绍一、MicroWindowsCentury软件公司维护的,较早出现的开放源代码的嵌入式嵌入式GUI特点:1主要特色:提供较为完善的图形功能,支持多种外部设备输入,包括LCD、鼠标和键盘等。
2核心是基于显示设备接口的,绝大部分使用C语言开发的,移植性很强。
3主要在linux、wince等操作系统上运行。
4对硬件资源的需求:文件存储空间:100k-600k输入输出接口:支持frambuffer ,支持每像素1、2、4、8、16、24、32.支持彩色和灰度显示。
支持鼠标、键盘、触摸屏。
CPU:支持intel 16位32位,MIPS R4000、ARM。
二、Qt/Embedded(简称QtE)QtE是一个专门为嵌入式系统设计图形用户界面的工具包,挪威Trolltech 公司产品。
1995年正式发行第一个版本Qt0.9。
Linux桌面系统的KDE 就是基于Qt库开发的,Qt与linux操作系统的兼容性最好。
特点:1主要特色:支持多种平台,移植时只需重新编译代码而不需要对代码进行修改。
2模块化,可剪裁,极其适合嵌入式系统的“小而快”的要求。
3用C++编写,为开发者提供清晰的框架。
4 For free 版本代码完全开放。
三、uc/GUIuC/GUI是一个通用的嵌入式应用的图形模块,它是美国Micrium公司开发的一种高效的、与处理器和LCD控制器独立的通用GUI,可以适用各种CPU和LCD,uC/GUI完全以ANSI-C编写,因此它与处理器无关,在单任务和多任务操作系统都可以很好的应用、可以很方便地移植到不同的操作系统和嵌入式微处理器上,并可支持不同尺寸的图形液晶显示器。
它采用层次化的设计,功能强大,移植方便,被广泛地应用于嵌入式领域,如PDA、机顶盒以及DVD NCD播放机等(1)支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI-C编译器即可;(2)所有硬件接口定义都使用可配置的宏;(3)字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址;(4)所有程序在长度和速度方面都进行了优化,结构清晰;(5)对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度。
第三章嵌入式GUI
8. 常见GUI参数比较
University of Shanghai for Science and Technology
3.3 Qt/Embedded 编程基础 1. Qt对象模型 Qt把下面这些特性添加到了C++当中: 一种关于无缝对象通讯被称为信号和槽的非常强大的 机制, 可查询和可设计的属性, 强大的事件和事件过滤器, 根据上下文进行国际化的字符串翻译, 完善的时间间隔驱动的计时器使得在一个事件驱动的 图形界面程序中很好地集成许多任务成为可能。 以一种自然的方式组织对象所有权的分层次和可查询 的对象树。 被守护的指针,QGuardedPtr,当参考对象被破坏时, 可以自动地设置为无效,不像正常的C++指针在它们 的对象被破坏的时候变成了“摇摆指针”。 University of Shanghai for Science and Technology
从QObject类或者它的一个子类(继承的所有类 可以包含信号和槽。当对象改变它们的状态的 时候,信号被发送,它不知道也不注意无论有 没有东西接收它所发射的信号。这就是真正的 信息封装,并且确保对象可以用作一个软件组 件。槽可以用来接收信号,但它们是正常的成 员函数。一个槽不知道它是否被任意信号连接。 可以把许多信号和你所希望的单一槽相连, 并且一个信号也可以和你所期望的许多槽相连。 把一个信号和另一个信号直接相连也是可以的。 (这时,只要第一个信号被发射时,第二个信 号立刻就被发射。) 总体来看,信号和槽构成 了一个强有力的组件编程机制。
标准的拖放机制; 统一的应用程序框架; 类似ActivX的机制; 大量软件, 如KFM(K File Manager), K Presnenter(类似Power Point), K Illustration、KOrganizer等;
GUI程序设计中常用设计模式探讨
GUI程序设计中常用设计模式探讨在GUI程序设计中,使用设计模式可以帮助提高代码的可维护性、代码的重用性以及可扩展性,使得程序更加健壮和易于维护。
本文将探讨GUI程序设计中常用的设计模式。
一、单例模式单例模式用于创建只能存在一个实例的类,以避免重复实例化。
在GUI程序设计中,单例模式广泛应用于需要全局访问的类,如配置文件管理、窗口管理等。
使用单例模式可以保证全局只有一个实例,避免重复创建实例浪费资源,并且可以方便地对实例进行管理和维护。
二、工厂模式工厂模式用于创建对象的过程中,由一个工厂类负责创建具体的对象,而不是在客户端直接实例化该对象。
在GUI程序设计中,工厂模式常用于创建窗口对象、控件对象等。
使用工厂模式可以隐藏对象的创建过程,使客户端不需要了解对象的创建过程,降低耦合性。
三、观察者模式观察者模式用于建立对象之间的一对多依赖关系,当一个对象发生改变时,其所有的依赖对象都会接收到通知并自动更新。
在GUI程序设计中,观察者模式常用于控件之间的交互,如窗口控件、按钮控件等。
使用观察者模式可以避免控件之间的耦合性,当一个控件发生改变时,不需要手动去更新其他控件,可以方便地实现交互。
四、适配器模式适配器模式用于将一个类的接口转换为用户需要的另一个接口,以便于不兼容的类之间的协作。
在GUI程序设计中,适配器模式常用于将不同控件的接口适配到一起,使得它们可以协同工作。
使用适配器模式可以避免控件之间的耦合性,实现控件的复用。
五、组合模式组合模式用于将对象以树形结构组织起来,以表示“部分-整体”的层次结构。
在GUI程序设计中,组合模式常用于构建UI界面的层级结构,如菜单栏、工具栏等。
使用组合模式可以将UI界面的层级结构组织清晰,方便地对界面进行管理和维护。
总之,GUI程序设计中常用的设计模式有单例模式、工厂模式、观察者模式、适配器模式以及组合模式等。
这些设计模式可以提高程序的可维护性、代码的重用性以及可扩展性,从而使得GUI程序更加健壮和易于维护。
嵌入式GUI方案比较
嵌入式GUI 方案比较一.嵌入式GUI 概况概况随着嵌入式系统的广泛应用,PDA 、机顶盒、DVD/VCD 播放机及WAP 手机已经迅速普及。
图形用户界面(GUI )的广泛流行,是当今计算机技术的重大成就之一。
嵌入式GUI 为嵌入式系统提供了一种应用于特殊场合的人机交互接口。
它极大地方便了非专业用户的使用,因此实时嵌入式系统对GUI 的需求越来越明显,而这一切均要求有一个高性能、高可靠的GUI 的支持。
的支持。
综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括:的基本要求包括:1.轻型、占用资源少。
.轻型、占用资源少。
2.高性能。
.高性能。
3.高可靠性。
.高可靠性。
4.可配置。
.可配置。
二.目前,主流的嵌入式Linux 系统的GUI 解决方案有:解决方案有:1. MicroWindows MicroWindows 是一个著名的开放源码的嵌入式GUI 软件。
MicroWindows提供了现代图形窗口系统的一些特性。
MicroWindows MicroWindows APIAPI 接口支持类Win32 API ,接口试图和Win32完全兼容。
它还实现了一些Win32用户模块功能。
MicroWindows 采用分层设计方法,以便不同的层面能够在需要的时候改写,基本上用本上用 C 语言实现。
MicroWindows 能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。
这样,MicroWindows 就显得十分小巧,便于移植到各种硬件和软件系统上。
MicroWindows 已经支持已经支持 Intel 16位和32位CPU 、MIPS R4000 以及以及 ARM 芯片;但作为一个窗口系统,该项目提供的窗口处理功能还需要进一步完善,提供的窗口处理功能还需要进一步完善,比如控件或构件的实现还很不完备,比如控件或构件的实现还很不完备,比如控件或构件的实现还很不完备,键键盘和鼠标等的驱动还很不完善。
GUI的种类及uCGUI的架构
GUI的种类及uCGUI的架构(说明:本博文转载自他人笔下,希望可以帮助同僚更深刻的认识GUI)GUI的种类及uC/GUI的架构一.GUI概述GUI(Graphic User Interface)是图形化的用户界面,它能提供友好的人机交互接口。
它有以下特性:体积小,运行时耗用系统资源少,层次化的结构,易移植,可靠性高嵌入式GUI种类嵌入式GUI种类有很多,下面列举几种:1. WINCE的GWES(图形、窗口、事件子系统),由应用程序接口(API)、用户接口(UI)和图形设备接口(GDI)组成,包含了消息机制2. Trolltech公司的产品:QT、QTE、QTOPIA,它们跨平台、功能强大,但资源消耗多3.MINIGUI是魏永明创建的嵌入式GUI中间件,可以以多线程、多进程、以及单任务运行,是比较成熟的商用系统4.ucGUI能支持多种环境的GUI,可以以多任务形式运行或者以前后台模式运行。
商用化,但功能相对简单GUI的两种模式:1. Windows模式,采用类似windows的API和相应的消息机制,如ucGUI、MicroWindows、miniGUI2.C/S模式,采用一个XServer,所有的显示都以客户端的形式请求服务,如Nano-XGUI 在嵌入式系统或实时系统中的地位越来越多的市场需求数据显示,包括PDA、娱乐消费电子、机顶盒、DVD等影音设备、WAP 手机等高端电子产品得到广泛应用,原先仅在军工、工业控制等领域中使用的GUI图形系统,受到越来越多的关注。
对于轻量级GUI 的系统而言,对GUI 的要求相对较低,如传统51类型单片机这类系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和GUI 之上,如Windows 或X Window。
目前此类系统都直接使用原有编程手段,采用比较简单的手法实现GUI。
对于太过庞大和臃肿的GUI系统而言,μc/GUI这类可运用于此类资源较紧张的轻型GUI 的需求更加突出uc/GUI简介μc/GUI是美国Micrium公司出品的一款针对嵌入式系统的优秀图形软件。
嵌入式开发中的图形界面设计
嵌入式开发中的图形界面设计嵌入式开发是一种在嵌入式系统中进行软件开发的技术和过程,它主要应用于各种电子设备,如智能手机、平板电脑、家电、汽车等。
而图形界面设计是嵌入式系统中不可或缺的一部分,它直接影响着用户对产品的体验和使用效果。
本文将重点介绍嵌入式开发中的图形界面设计,包括设计原则、常用的设计工具以及一些实际应用案例。
一、设计原则在进行嵌入式开发中的图形界面设计时,需要遵循以下几个原则:1.用户友好性:界面设计应简洁明了,方便用户操作,并且要符合用户的使用习惯和心理预期。
2.响应速度:嵌入式系统的资源有限,因此图形界面设计要尽量避免繁重的计算和图形渲染操作,以提高系统的响应速度。
3.美观易读:界面的颜色、字体和排版要合理搭配,使其在视觉上舒适且易于辨识。
4.节约资源:由于嵌入式系统的资源限制,图形界面设计要优化使用内存和存储空间,避免资源浪费。
二、常用的设计工具在进行嵌入式开发中的图形界面设计时,可以选择适合自己的设计工具来辅助完成设计任务。
以下是一些常用的设计工具:1. Adobe Photoshop:用于界面的原型设计和图片编辑处理,它具有强大的图像处理和设计功能。
2. Sketch:是一款专门为界面设计师开发的工具,它支持矢量绘图和界面原型制作。
3. Axure RP:用于界面原型设计和交互设计,它可以帮助设计师创建出具有高度可交互性的原型演示。
4. Balsamiq Mockups:一款简单易用的原型设计工具,旨在帮助设计师快速绘制出界面的线框图。
5. Figma:是一款基于浏览器的多人协作设计工具,它可以帮助设计师在团队合作中进行界面设计和交互设计。
三、实际应用案例以下是一些实际应用中的嵌入式开发图形界面设计案例,它们展示了不同领域的图形界面设计特点和应用场景:1. 智能手机图形界面设计:在智能手机上,图形界面设计需要考虑到用户的视觉习惯和操作方式,设计出便于操作和使用的界面,如主屏幕、应用程序界面和通知栏等。
6_6 嵌入式GUI
Linux上的图形系统
Linux下的GUI – MiniGUI
Linux上的图形系统
在多字体和多字符集的支持中,MiniGUI也采用了面向对象 的软件技术,使得添加新的字体支持和新的字符集支持非常方便。
Linux上的图形系统
MiniGUI图形应用程序编程
MiniGUI采用事件驱动编程。 键盘和鼠标动作产生由应用程序不断轮询的事件。这些事件 被发送到具有焦点的窗口,而应用程序把这些事件交由和该窗口 相关联的例程来处理。这些窗口例程通常是由应用程序定义的, 或者是某些标准例程中的一个。 操作系统、其他窗口的事件处理例程和应用程序代码都可以 产生事件。 用于处理事件的窗口例程通常标志了某一个“窗口类”,具 有相同窗口例程的窗口实例被认为是属于同一窗口类。
MiniGUI
• MiniGUI是由北京飞漫软件技术有限公司主持的一个自 由软件项目(遵循GPL条款),其目标是为基于实时嵌入式系 统提供一个轻量级的图形用户界面支持系统。 • MiniGUI为应用程序定义了一组轻量级的窗口和图形设 备接口。利用这些接口,每个应用程序可以建立多个窗口, 而且可以在这些窗口中绘制图形。用户也可以利用MiniGUI 建立菜单、按钮、列表框等常见的GUI元素。
在消息驱动的应用程序中,计算机外设发生的事件,例如键 盘键的敲击、鼠标键的按击等,都由支持系统收集,将其以事先 的约定格式翻译为特定的消息。应用程序一般包含有自己的消息 队列,系统将消息发送到应用程序的消息队列中。应用程序可以 建立一个循环,在这个循环中读取消息并处理消息,直到特定的 消息传来为止。这样的循环称为消息循环。一般地,消息由代表 消息的一个整型数和消息的附加参数组成。
嵌入式系统软件设计嵌入式GUI概述
GTK提供了大量的主题和图标,允许开发者根据需要进行高度定 制。
广泛的社区支持
GTK拥有庞大的开发者社区,遇到问题可以快速得到解决。
基于WinForms的嵌入式GUI
01
与Windows系统紧密集成
WinForms是微软开发的GUI库,与Windows系统紧密集成,可以充分
利用Windows系统的特性。
嵌入式GUI应具备良 好的可扩展性,以适 应不同的硬件平台和 操作系统。
使用标准化的技术和 接口,以便与其他组 件和系统集成。
设计时应考虑模块化 和可定制性,以便根 据需要进行功能扩展 或定制。
03
嵌入式GUI的主要组件
窗口系统
01
02
03
窗口系统是嵌入式GUI的基础, 负责管理窗口的创建、销毁、布 局和交互等操作。
特点
轻量级、占用资源少、实时性、可定 制性、跨平台兼容性。
嵌入式GUI的应用领域
01
智能家居
控制家电设备、照明、安全系统等。
医疗设备
显示医疗图像、控制医疗设备等。
03
02
工业自动化
监控生产过程、控制机械设备等。
汽车电子
车载信息娱乐系统、仪表盘显示等。
04
嵌入式GUI的发展趋势
跨平台兼容性
随着物联网的发展,嵌 入式GUI需要支持多种 操作系统和硬件平台。
使用可靠的技术和工具进行GUI开发,如使用经过验证的图形库
03
和框架。
资源限制
01
嵌入式系统通常具有有限的资源,如内存、处理器速
度和存储空间。
02
GUI设计应考虑到这些限制,并优化资源使用,如减
少内存占用、降低处理器负载和提高存储效率。
第1章 当前主流的小型嵌入式GUI
第1章当前主流的小型嵌入式G U I这几年Cortex-M系列单片机发展迅猛,功能也越来越强劲,随之而来的就是小型嵌入式GUI也得到很好的发展。
本章节就为大家介绍下当前主流的小型嵌入式GUI。
1.1 当前主流的嵌入式GUI1.2 TouchGFX介绍1.3 Embedded Wizard GUI介绍1.4 μGFX介绍1.5 emWin(uCGUI)介绍1.6 总结1.1当前主流的嵌入式G U I当前主流的小型嵌入式GUI主要有:emWin(uCGUI),TouchGFX,Embedded Wizard GUI,uGFX和MicroChip GUI。
当然,还有其它的GUI,只是不被我们所知,这里把前面说到的其中几款GUI 给大家进行简单的介绍。
1.2T o u c h G F X介绍TouchGFX是这两年才发布的嵌入式GUI,以界面华丽,流畅以及强劲的TouchGFX Designer(即将发布正式版)著称。
官方地址:/en/。
当前已经支持的硬件平台(2016-07):NXP LPC1788, LPC1853, LPC1857, LPC4088, LPC4350,LPC4353, LPC4357ST STM32F429, STM32F439, STM32F469, STM32F746,STM32F756, STM32F769Freescale K70Renesas Synergy S5 & S7Silicon Labs EFM32下面贴几张TouchGFX实际的显示效果:下面是TouchGFX Designer的软件效果,功能比较强劲,让界面的创建变得比较容易:关于TouchGFX的介绍就给大家说这么多,更多相关知识可以到TouchGFX的官网去查看。
从上面的几张图可以看出,TouchGFX设计的界面效果还是很漂亮的。
美中不足的是TouchGFX也是要收费的,具体收费标准看这里:/en/services-pricing/licenses/。
主流嵌入式Linux下GUI解决方案
❖ qvfb:运行Qt 的虚拟缓冲帧工具 ❖ 把显示结果输出到虚拟缓冲帧,出现桌面环境
Qt/E 、Qtopia
❖ qte/qtopia在2410s上的移植
软件环境
❖ PC 机操作系统REDHAT LINUX 9.0
Qt/E 、Qtopia
测试Qt/E桌面环境 ❖有源文件progressbar.cpp ❖指定环境变量TMAKEPATH=…/qws/linux-x86-g++ ❖使QTDIR指向Qt/Embedded的安装路径以及库 ❖progen –t app.t –o progressbar.pro(生成工程文 件.pro) ❖tmake -o Makefile hello.pro(生成Makefile文件) ❖使用LINUX系统自带的make进行整个程式的编译联接 ❖生成二进制的可执行文件progressbar ❖运行qvfb来模拟Virtual framebuffer(指定模拟器长、 宽)
交叉编译qtopia
Qt/E 、Qtopia
❖ qte/qtopia在2410s上的移植
建立宿主机和开发板的通讯
❖ export QTDIR=$PWD export PATH=$QTDIR/bin:$PATH(指定命令搜索路径 ) export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH(共享 库路径 )
配置qt-embedded编译选项
❖ ./configure -system-jpeg -gif -no-xft -qconfig qpe -qvfb -depths 4,8,16,32
嵌入式Linux系统中的GUI系统的研究与移植介绍
嵌入式Linux系统中的GUI系统的研究与移植介绍嵌入式Linux系统中的GUI系统的研究与移植介绍摘要:针对嵌入式Linux系统中几种常见的GUI(Graphic User Interface)系统,讨论嵌入式GUI实现的底层技术方式;详细分析Microwindows、MiniGUI、Qt/Embedded等三种GUI的实现特点、体系结构、API接口。
结合这三种嵌入式GUI在以Motorola i,MX1为核心的实际应用系统中移植开发的问题,讨论移植技术与中文化技术。
引言嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人们交互接口。
嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。
另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。
总体来讲,嵌入式GUI具备以下特点:*体积小;*运行时耗用系统资源小;*上层接口与硬件无关,高度可移植;*高可靠性;*在某些应用场合应具备实时性。
(收集整理)1 基于嵌入式Linux的GUI系统底层实现基础一个能够移植到多种硬件平台上的嵌入式GUI系统,应用至少抽象出两类设备:基于图形显示设备(如VGA卡)的图形抽象层GAL (Graphic Abstract Layer),基于输入设备(如键盘,触摸层等)的输入抽象层IAL(Input Abstract Layer)。
GAL层完成系统对具体的显示硬件设备的操作,极大程度上隐蔽各种不同硬件的技术实现细节,为诮程序开发人员提供统一的图形编程接口。
IAL层则需要实现对于各类不同输入设备的控制操作,提供统一的调用接口。
GAL层与IAL层的设计概念,可以极大程序地提高嵌入式GUI的可移植性,如图1所示。
目前应用于嵌入式Linux系统中比较成熟,功能也比较强大的GUI系统底层支持库有SVGA lib、LibGGI、Xwindow、framebuffer等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式GUI的组成部分(四)
图标 显示在管理数据的应用程序中的数据,或 者显示应用程序本身。应用程序的图标只 能用于启动应用程序。
按钮 菜单中,利用程度高的命令用图形表示出 来,配置在应用程序中,成为按钮。应用 程序中的按钮,通常可以代替菜单。
嵌入式GUI的分类(一)
低端嵌入式GUI: μC/GUI、RT-Thread/GUI
RT-Thread/GUI是一个图形用户界面,它专为RTThread操作系统而开发,并在一些地方采用了RTThread特有功能,这个图形用户界面组件能够为 RT-Thread上的应用程序提供人机界面交互功能。
RT-Thread/GUI组件功能
多线程图形用户界面 依赖与RT-Thread线程调度器的实时图形用
服务端
当一个图形应用(workbench)或者窗口 (window)需要创建时,需要向GUI服务 端请求允许创建相应的实例。GUI服务端将 记录下相应的位置信息。在RT-Thread/GUI 中,屏幕会被分隔成数个互不相重叠的面 板(panel)。面板数也可以只有一个(即 全屏),或所有面板拼接成的总体面积并 不完全覆盖真实的物理屏面积。
RT-Thread/GUI
RT-Thread是一款来自中国的开源实时操作系统, 由国内一些专业开发人员开发、维护。它不仅仅 是一款高效、稳定的实时核心,也是一套面向嵌 入式系统的软件平台,覆盖了全抢占的实时操作 系统内核,小巧而与底层具体实现无关的文件系 统,轻型的TCP/IP协议栈以及轻型的多窗口多线 程图形用户界面。
注册面板可以通过如下函数接口进行:
void rtgui_panel_register(char *name, rtgui_rect_t *extent)
例子:rtgui_rect_t rect;
rect.x1 = 0; rect.y1 = 0; rect.x2 = 240; rect.y2 = 320; rtgui_panel_register( “main”, &rect );
嵌入式GUI的组成部分(二)
单一文件界面 在窗口中,一个数据在一个窗口内完成的 方式。在这种情况下,数据和显示窗口的 数量是一样的。若要在其他应用程序的窗 口使用数据,将相应生成新的窗口。因此 窗口数量多,管理复杂。
多文件界面 在一个窗口之内进行多个数据管理的方式。 这种情况下,窗口的管理简单化,但是操 作变为双重管理。
嵌入式GUI的组成部分(三)
标签 多文件界面的数据管理方式中使用的一种 界面,将数据的标题在窗口中并排,通过 选择标签标题显示必要的数据,这样使得 接入数据方式变得更为便捷。
菜单 将系统可以执行的命令以阶层的方式显示 出来的一个界面。一般置于画面的最上方 或者最下方,应用程序能使用的所有命令 几乎全部都能放入。
嵌入式GUI的组成部分(一)
桌面 在启动时显示,也是界面中最底层,有时也指代 包括窗口、文件浏览器在内的“桌面环境”。在 桌面上由于可以重叠显示窗口,因此可以实现多 任务化。
视窗 应用程序为使用数据而在图形用户界面中设置的 基本单元。应用程序和数据在窗口内实现一体化。 在窗口中,用户可以在窗口中操作应用程序,进 行数据的管理、生成和编辑。通常在窗口四周设 有菜单、图标,数据放在中央。
嵌入式GUI的广泛应用是当今计算机发展的 重大成就之一,它极大地方便了非专业用 户的使用,人们从此不再需要面对功能单 一的按键和死记硬背大量的命令,取而代 之的是可以通过窗口、菜单、按钮等方式 来方便地进行操作。
嵌入式GUI具有下面几个方面的基本要求: 轻型、占用资源少、高性能、高可靠性、 便于移植、可配置等特点。
户界面 创新地在嵌入式系统中引入面板(panel)的
概念,缩小了多线程,多窗口GUI编程代价 C语言方式的全面向对象设计 界面主题支持 中文文本显示支持 丰富的控件支持
RT-Thread/GUI架构
RT-Thread/GUI采用 传统的客户端/服务 器的结构,但和传 统的C/S架构中把绘 画操作放于服务器 不同的是,绘画操 作完全由客户端自 行完成。服务端仅 维护着各个客户端 的位置信息
适用平台: 单片机、ARM7、ARM Cortex-M
开发语言: C语言
操作系统: μC/OS、RT-Thread
嵌入式GUI的分类(二)
中端嵌入式GUI: miniGUI、OpenGUI、 Microwindows
适用平台: ARM7、ARM9、ARM11、 ARM Cortex-R
服务端提供的功能主要是客户端(线程) 的管理及鼠标、键盘事件的派发
服务端模块
GUI Server 服务端事件处理主线程 Panel 面板及面板之上的线程维护 TopWin 顶层窗口信息维护 Mouse 鼠标相关信息处理
面板(Panel)
RT-Thread/GUI服务端维护着屏幕的面板划 分,并且面板与面板之间是相互不重叠。
开发语言: C语言
操作系统: 嵌入式Linux、μC/Linux
嵌入式GUI的分类(三)
高端嵌入式GUI: Qt/Embedded( Qtopia )、Android、MFC
适用平台: ARM9、ARM11、ARM Cortex-A
开发语言: C++语言、JAVA语言
操作系统: 嵌入式Linux、Win CE/Win Phone
嵌入式GUI设计
陈俊彦
嵌入式GUI概述
什么是GUI? 图形用户界面(Graphical User Interface, 简称 GUI,又称图形用户接口)是指采用 图形方式显示的计算机操作用户界面。与 早期计算机使用的命令行界面相比,图形 界面对于用户来说在视觉上更易于接受。
嵌入式GUI的特点
嵌入式GUI的准则
减少用户的认知负担 保持界面的一致性 满足不同目标用户的需求 用户界面友好性 图标识别平衡性 图标功能一致性 建立界面与用户的互动交流 的应用领域
手机通讯移动平台 平板电脑 数码产品 车载系统产品 智能家电产品 工业数控平台