几种GUI比较
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公司出品的一款针对嵌入式系统的优秀图形软件。
Java中的GUI框架对比选择最适合你的工具

Java中的GUI框架对比选择最适合你的工具Java作为一种广泛使用的编程语言,提供了多种GUI框架供开发者选择。
这些框架各有特点和适用场景。
本文将对Java中常用的几个GUI框架进行对比,帮助你选择最适合你的工具。
一、SwingSwing是Java提供的最基本和最常用的GUI框架之一。
它提供了丰富的组件和布局管理器,可以轻松地创建各种复杂的用户界面。
Swing 的优点在于易学易用,它提供了大量的文档和示例程序,帮助开发者快速掌握和应用。
然而,Swing也有其局限性。
它的外观默认较为简陋,需要额外的工作来美化界面。
而且,在处理大量数据时,Swing的性能可能会受到影响。
因此,如果你需要创建高度定制化的用户界面或者处理大量数据,或许有其他更适合的选择。
二、JavaFXJavaFX是Oracle在Java 8中引入的新一代GUI框架。
相比于Swing,JavaFX提供了更现代化,更美观的用户界面设计。
它支持页面式布局,可以使用CSS进行界面样式的定制,同时还提供了丰富的动画和多媒体支持。
JavaFX还具有良好的跨平台性能,可以在不同操作系统下获得一致的用户体验。
它也能很好地集成到现有的Swing应用程序中,方便开发者逐步迁移。
然而,JavaFX在一些细节上还不够完善,文档和示例相对较少,对于初学者来说学习曲线可能较陡峭。
此外,JavaFX在某些方面的功能支持可能不及Swing,尤其是在一些特殊需求的场景下。
三、AWTAWT是Java最早提供的GUI框架,它直接使用了底层操作系统的原生组件。
AWT的优点在于性能较高,因为它充分利用了底层操作系统的原生支持。
然而,AWT的外观和功能相对较为有限,对于一些复杂的界面和布局需求,可能支持不够理想。
另外,AWT仅支持部分平台,可能存在跨平台性能方面的问题。
四、Java SWTSWT是一种由Eclipse基金会开发并维护的GUI框架。
它利用了操作系统的底层图形系统,提供了更接近原生的界面和更好的性能。
PTGui全景接片

而且对于平接全景和行星全景其拍摄方法也略有不同,需要在拍摄时加以注意。
结合软件处理能力和规范要求,需要注意: 1) 固定焦段。原因在于使各片所获得物体成像比例相同,PTGui将根据人工指定的或 第一张片的Exif信息确定焦段和机型,来正确计算透视关系;若要将不同焦段的照片合为一体,也可以实现,但后期处理将会非常繁杂,需要人 工将相关照片按指定焦段进行折算和加工后,才会让程序完成自动对接控制(此项在后续将探讨)。 2) 曝光。由于场景大,各处的光照情况差别巨大,而且相机本身的宽容度有限,因此 需要根据场景光照情况,可以采用固定曝光或自动曝光+包围曝光的方法,实现场景总体不过曝、不欠曝。在无大光比的情况下采用固定曝光最 恰当,在光比过大时采用自动曝光+包围曝光也是实用的,PTGui具备自动曝光修正和HDR合成处理能力。但从个人体会看,尽可能采用固定曝 光或多段式固定曝光最好。 3) 光圈。光圈越小景深越深,场景清晰范围越广,不同光圈的景深不同,场景清晰范 围不同,从便于操作、减轻景深的计算看,固定光圈是最容易的做法;当然不固定光圈也是可以的。 4) 对焦。在行星接片中由于远近差距非常大,所以一定要对光圈与景深心中有数,确 保关联片中重叠(用于控制)区域内的物体清晰(特别重要),可以根据每层(圈)片时设定不同的对焦点,或采用自动对焦点。如果关联片控 制区域模糊,则将难上实现自动对接,就是人工手动设定控制点也将是困难的事情。 5) 基点。即拍摄时的圆心,在准备行星接片时,若想将主体更突出(即更大),则拍 摄时的基点一定要根据主体及周边场影的高低透视来合理确定,基点离主体越近,则在行星片中展现越大,附属小的关系。 6) 补拍。在城市近景中一般都会遇到人、车、广告屏、流动灯等在动、在变化的场影, 若快门速度不够快时,肯定会形成拖影或虚影或断影(不全),因此,一般在主体全影拍完成后或相关近景拍摄时,在同一基点,用相同焦段, 通过调整光圈、曝光时间、ISO等方法,补拍相关近景人、物、光的清晰静态照备用,而且要尽一切可能让片中人、物保持最大程度的完整,对 此,也可多补拍几张备用。 7) 拍摄。有条件最好是使用全影拍片专用云台,没条件的可用常规球形云台,嫌脚架 难带的,那就用手持吧,不过,手持的误差好,后期手工调整难度也大,所以,最好还是上脚架拍素材片。
ansys 命令流和GUI操作比较及ansys的一些使用经验。

ansys命令流和GUI操作比较及ansys的一些使用经验ansys提供两种工作方式,命令流和GUI操作。
APDL(ansysparameterdesignlanguage)ansys参数化设计语言。
对于复杂的有限元模型,使用GUI方式的缺点就会暴露,因为一个分析的完成需要进行多次反复。
这样,在GUI方式中,就会出现大量重复的操作,会严重影响设计人员的心情。
命令流有以下几个优点:1 可减少大量的重复工作,少许修改的话,只需变动几行代码就行,可为设计人员节省大量的时间。
2 便于保存和携带,一个复杂的有限元分析的APDL代码也就几百行,也就几十KB。
3 便于交流,设计人员进行交流时,查看APDL代码明显方便得多。
1 前处理——建模与网格划分提高建模能力第一:建议不要使用自底向上的建模方法,而要使用自顶向下的建模方法。
第二:对于比较复杂的模型,一开始就要在局部坐标下建立,以方便模型的移动,在分工合作将模型组合起来时,优势特别明显,同时,图纸中有几个定位尺寸,一开始就要定义几个局部坐标,在建模的过程中,可避免尺寸的换算。
第三:注重建模思想的总结,好的建模思想往往能起到事半功倍的效果,例如,一个二维的塑性成型问题,有3个部分——凸模、凹模和坯料,上下模具如何建模比较简单,一个一个建立吗?只要建出凹凸模具的吻合线,用此线分隔某个面积,然后将凹模上移即可。
第四:对于面网格划分,不需要考虑映射条件,直接对整个模型使用以下命令,mshape,0,2dmshkey,2esize,size控制单元的大小,保证长边上产生单元的大小与短边上产生单元的大小基本相等,绝大部分面都能生成非常规则的四边形网格,对于三维的壳单元,麻烦一点的就是给面赋予实常数,这可以通过充分使用选择命令,将实常数相同的面分别选出来,用aatt,real,mat,赋予属性即可第五:对于体网格划分,要得到漂亮的网格,需要使用扫略网格划分,而扫略需要满足严格的扫略条件,因此,复杂的三维实体模型划分网格是一件比较艰辛的工作,需要对模型反复的修改,以满足扫略条件,或者一开始建模就要考虑后面的网格划分;体单元大小的控制也是一个比较麻烦的事情,一般需要对线生成单元的分数进行控制,要提高划分效率,需要对选择命令相当熟悉。
python2.7入门---GUI编程(Tkinter)

python2.7⼊门---GUI编程(Tkinter)Python 提供了多个图形开发界⾯的库,⼏个常⽤ Python GUI 库如下:Tkinter: Tkinter 模块(Tk 接⼝)是 Python 的标准 Tk GUI ⼯具包的接⼝ .Tk 和 Tkinter 可以在⼤多数的 Unix 平台下使⽤,同样可以应⽤在 Windows 和 Macintosh 系统⾥。
Tk8.0 的后续版本可以实现本地窗⼝风格,并良好地运⾏在绝⼤多数平台中。
wxPython:wxPython 是⼀款开源软件,是 Python 语⾔的⼀套优秀的 GUI 图形库,允许 Python 程序员很⽅便的创建完整的、功能健全的 GUI ⽤户界⾯。
Jython:Jython 程序可以和 Java ⽆缝集成。
除了⼀些标准模块,Jython 使⽤ Java 的模块。
Jython ⼏乎拥有标准的Python 中不依赖于 C 语⾔的全部模块。
⽐如,Jython 的⽤户界⾯将使⽤ Swing,AWT或者 SWT。
Jython 可以被动态或静态地编译成 Java 字节码。
这次主要看的是看下Tkinter。
Tkinter 是 Python 的标准 GUI 库。
Python 使⽤ Tkinter 可以快速的创建 GUI 应⽤程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、⽽且 IDLE 也是⽤ Tkinter 编写⽽成、对于简单的图形界⾯ Tkinter 还是能应付⾃如。
在这⾥要注意Python3.x 版本使⽤的库名为 tkinter,即⾸写字母 T 为⼩写:import tkinter我们来看创建⼀个GUI程序的步骤:1、导⼊ Tkinter 模块2、创建控件3、指定这个控件的 master,即这个控件属于哪⼀个4、告诉 GM(geometry manager) 有⼀个控件产⽣了。
Simulink小知识

powergui有三种运行模式:continous、discrete、phasorcontinous和discrete的用法区别在于,小型系统(状态量10个以下)用continous运行比较好,时间不是问题,精确度较高;但是大型系统或者电路中有电力电子器件就建议用discrete来运行,solver里边要设置成定步长,no continous state,步长根据经验自己设置(没经验可以先试几次,从小到大设置一下,两次运行结果差异不大以后就用步长大的为准),会影响模拟总时间和结果的精确性。
一般用来模拟电力电子,有igbt等开关。
phasor就是稳态模型,没有状态量。
如何提高simpowersystem的仿真速度1 使用ode23解法器(大家可能都知道)但效果很有限。
2 对系统离散化,方法为在你的gui模块里选择discretize electric model,采样时间越大仿真越快,当然采样时间你对系统精确性相配合,因为采样时间是与准确性成反比的3 在仿真的过程中尽量少开启示波器窗口,示波器参数中的点数限制最好关闭4 如果你的系统要从一个特定的状态开始仿真,在仿真参数设置是,最好在i/o选项中设置起始的状态矢量5 开启加速器,(方法在菜单仿真这一项中可以设置),这个也能大大加快仿真速度。
(感谢会员xu.chunke )还有就是,如果慢的不正常或半途仿真停止,就要考虑代数环了,这个就要在形成的环路上加memory来解决,一般存在反馈的复杂系统都容易出现这种情况。
matlab scope 编辑和保存图片Simulink 波形处理其实身边有不少人都遇到过这个问题:simulink 中强大的scope输出结果的图片如何保存呢?最直观的方法恐怕是print screen 然后到画图里反色保存,但是,你会发现出来的结果让人极其不爽,比如曲线颜色太淡,线条太细,添加注释也很麻烦,另外,如果你是一个用latex写文章的人,你一定会无比怀念在plot中直接另存为.eps的强大功能。
虚拟现实各种引擎的比较

虚拟现实各种引擎的比较virtoolsVT起初定义为游戏引擎,但后来却主要做虚拟现实。
VT扩展性好,可以自定义功能(只要会编程)可以接外设硬件(包括虚拟现实硬件),有自带的物理引擎,互动几乎无所不能。
制作类似于WF或EON,但他的模块分的很细,所以可以自由度很大,可以制作出前两者所不能达到的功能。
支持Shader(虽然有限制),效果很好。
他可以制作任何领域的作品。
由于网络插件有功能限制,所以如果放网络上,功能制作会稍微受限,但单机则无所谓。
接近于微型游戏引擎,互动性强大,目前被认为是功能最强大的元老级虚拟现实制作软件.学习资料也比较多,开发WEB3D游戏的首选浏览插件10M左右的庞大体积是个瓶颈,但是随着国内带宽的增加,这方面的影像已经越来越显得微不足道了。
他的应用将有着无限的前景!QUEST3D也是元老级的软件了,曾经的超牛DEMO让许多人热捧,且好像是节点式的操作,比较强大. vrml q3d vt vgs vrp cult3d quest3d anark,画质也比较优异,入门难度有,浏览插件2M左右,算是中级化,也可以适应亚洲.UNITY 3DDEMO的高质量致使许多人热捧,画质确实够强,互动性近期也有几个游戏式的作品,也可以说明UNITY是有很强的互动性的,运行于MAC系统上,所以目前用的人比较少.有强大的地形绘制器,这个是比较引以为荣的,浏览插件大概3M左右。
TURNTOOL此虚拟现实制作软件,在展示方面比较擅长,画质国内的和WEBMAX差不多.资料还是比较少,英文好的朋友可以去TT的官方论坛看老外的教程,以插件的方式嵌入3DMAX里,导出比较简易,也是为数不多的轻量级WEB3D软件.浏览插件在800K 左右,也适合亚太地区的带宽承受范围。
GLUT - OpenGL Utility ToolkitGLUT 是一个与操作系统无关的OpenGL程序工具库, 它实现了可移植的OpenGL窗口编程接口,GLUT支持C/C++、FORTRAN、ADA。
基于嵌入式车载导航终端中GUI的应用

型 城 市 交 通 严 重 堵塞 以及 严 重 的空 气 污 染 和 噪
声 污 染 。为 了改 善 出现 的 问题 ,智 能交 通 系 统 ( t l e t rnp rS s m, T ) I e i n a sot yt I S 出现 了,它是通 n lg T e
户提 供漂 亮 的 图形 界面 ,为 带有 轻量 级 窗 口系 统
的嵌 入式 设备 提供 了标 准 的A I P 。许 多基 于 Q 的 t X n o 都 非 常 方 便 地 移 植 到 QTE e d d Wid w / mb d e
版本 上 。O 遵循 G L 议 ,开 放主 要源 代码 :具 t P协 有丰 富 的AP , 以满 足大 多数 嵌入式 应用 系统 开 I可
3 6
机 电技 术
2l 年4月 01
基于嵌入式 车载导航终端 中 GU 的应用 I
李 鹏 飞
( 门 大 学物 理 与 机 电工 程 学 院 ,福 建 厦 门 3 10 ) 厦 6 0 5 摘 要 :给 出 了嵌 入式 车 载 导 航 终端 的 总体 设 计 , 对 软硬 件 做 出 了选 择 。通 过 比较 分 析 目前流 行 的几 种 嵌 入 式 G I U
过运 用先进 的信 息 、通 信和 控制 等高 新技 术对传 统运输 系统 进行 改造而 形成 的一 种信 息化 、智 能
化和 社会化 的新 型交通 运输 方式 。车 载导航 终端 在智 能交通 系统 中 占有 极其 重要 的地位 ,而 人机 界面在 车载 导航 终端 的应用扮 演着 关键 的角 色 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
几种嵌入式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控制器,可以使用缓冲存储器减少访问时间,提高显示速度。
UC/GUI特征UC/GUI给任何带图形LCD操作的应用程序提供了一种有效,与处理器和LCD控制器独立的图形用户界面。
它与单任务或多任务环境兼容,不管是专用操作系统(proprietary operating system)还是其他任何的商业实时操作系统(RTOS)。
UC/GUI以C源代码的形式移植。
它可以适用于任何大小的物理和虚拟显示,支持任何的LCD控制器和CPU。
它的特征包括:一般特点:。
任何8/16/32位的CPU;只需要一个ANSI 的C编译器。
带控制器支持(如果有合适的驱动程序)的任何(单色,灰度级或者彩色)LCD。
在小屏幕显示时可以不带LCD控制器。
通过配置宏支持任何接口。
显示大小可配置。
字符和位图可以写到LCD的任何点上,而不必是偶数的字节地址。
程序在大小和速度两方面得到优化。
允许编译时跳转(Compile time switches)以获得不同的优化。
对于较慢的LCD控制器,,LCD能够缓存到内存中,最小化访问次数,获得非常高的速度。
清晰的结构。
支持虚拟显示;虚拟显示可以比实际显示更大图形库。
支持不同颜色深度的位图。
位图转换器。
完全无浮点(floating-point)使用。
线/点快速绘制(不使用浮点运算)。
圆/多边形的快速绘制。
不同的绘图模式字体。
移植有基本软件使用的各种不同字体:4*6, 6*8, 6*9,8*8, 8*9, 8*16, 8*17, 8*18, 24*32,还有8,10,13,16等几种不同像素高度的均衡字体(proportional fonts)。
更多的信息,请参考第25章"标准字体"。
能够定义新字体并且简单链接。
只有用于应用程序的字体才实际上链接到执行结果,使得ROM的最少化使用。
字体能在x和y方向充分地缩放。
字体转化器;你主机系统(比如微软的Windows)上的任何可用字体都可以转化字符串/数值输出程序。
程序能够以任何字体显示十进制,二进制和十六进制的数值。
程序能够以任何字体编辑十进制,二进制和十六进制的数值窗口管理器(WM)。
包括剪切在内的完全窗口管理。
窗口外的客户区域无法重写覆盖。
窗口可以移动和改变大小。
支持回调函数(Callback routines)(可选用法)。
WM最少地使用RAM(大约每个窗口20字节)用于PC外观的可选widgets。
可用Widgets(窗口对象,或称为控件)。
它们一般自动运行,并且使用简单触摸屏和鼠标支持。
窗口对象,比如按钮widget,UC/GUI提供触摸屏和鼠标支持PC工具。
模拟器和观察器。
位图转化器。
字体转化器四、MiniGUI我国为数不多的在国际比较知名的自由软件之一,早期有魏永明先生和许多志愿者开发,现在有北京飞漫公司()进行维护和商业运作。
广泛应用于通讯、医疗、工控、电力、机顶盒、多媒体终端等领域。
使用MiniGUI 成功开发产品的企业有华为、中兴通讯、大唐移动、长虹、TCL、联想、迈瑞、南瑞、炬力、D2 等。
这些用户广泛分部在中国大陆、台湾、新加坡、韩国、美国、德国、意大利、印度、以色列等国家和地区。
特点:1主要特色:轻量级的图形界面,MiniGUI代码都采用c 语言开发,提供完备的多窗口机制和消息传递机制。
2对硬件的要求内存: MiniGUI 的静态存储随配置选项的不同而不同,最少需占用1MB 静态存储空间。
MiniGUI 启动后,初始占用1MB 动态存储空间。
建议系统内存为8MB 以上。
支持操作系统:VxWorks、ThreadX、Nucleus、OSE、pSOS、uC/OS-II、eCos、linux6特点优势MiniGUI 为嵌入式Linux 系统提供了完整的图形系统支持,是全球针对嵌入式Linux仅有的两个商用嵌入式GUI系统之一。
MiniGUI为嵌入式Linux 系统提供了完整的多进程支持;可以MiniGUI-Processes、MiniGUI-Threads或者MiniGUI-Standalone 三种运行模式运行。
MiniGUI 的主要技术特性硬件适配性:可运行于各种含有MMU(内存管理单元)的32 位处理器架构之上,如ix386、ARM、MIPS、PowerPC 等。
支持低端显示设备(比如单色LCD)和高端显示设备(8 位色及以上显示设备)。
通过MiniGUI 的图形抽象层及图形引擎技术,还可以支持特殊的显示设备,比如YUV 显示设备。
对显示设备分辨率无最大和最小限制。
副屏支持。
当系统中有多个视频设备时,可将一个作为MiniGUI 的主屏,实现完整的多窗口系统;而其它设备作为副屏,在其上通过MiniGUI 的图形接口来实现文字渲染、图形显示等功能。
可支持各种输入设备,如PC 键盘、PC 鼠标、小键盘(Keypad)、触摸屏、遥控器等等。
多种键盘布局的支持。
MiniGUI 除支持常见的美式PC 键盘布局之外,还支持法语、德语等西欧语种的键盘布局。
资源消耗:MiniGUI 的静态存储随配置选项的不同而不同,最少需占用1MB 静态存储空间。
MiniGUI 启动后,初始占用1MB 动态存储空间。
建议系统内存为8MB 以上。
操作系统适配性:支持Linux 操作系统(非uClinux 操作系统),可以MiniGUI-Processes、MiniGUI-Threads 或者MiniGUI-Standalone 三种运行模式运行。
内建资源支持。
可以将MiniGUI 所使用的资源,诸如位图、图标和字体等编译到函数库中,该特性可提高MiniGUI 的初始化速度,并且非常适合无文件系统支持的实时嵌入式操作系统。
针对嵌入式系统的特殊支持,包括一般性的I/O 流操作,字节序相关函数等。
窗口子系统特性:完备的多窗口机制和消息传递机制。
使用MiniGUI-Threads 运行模式时,可在不同线程中创建主窗口,并支持线程间的消息传递;使用MiniGUI-Processes 运行模式时,支持完整的多进程窗口系统。
对话框和消息框支持。
提供常用的控件类,包括静态文本框、按钮、单行和多行编辑框、列表框、组合框、菜单按钮、进度条、滑块、属性页、工具栏、树型控件、月历控件、旋钮控件、酷工具栏、网格控件、动画控件等。
其它GUI 元素,包括菜单、加速键、插入符、定时器等。
图形子系统特性:提供有增强GDI 函数,包括光栅操作、复杂区域处理、椭圆、圆弧、多边形以及区域填充等函数。
在提供有兼容于C99 规范的数学库平台上,还提供有高级二维绘图函数,可设置线宽、线型以及填充模式等。
通过MiniGUI 的图形抽象层及图形引擎技术,也可以让上述高级GDI 接口在低端显示屏上实现。
各种流行图像文件的支持,包括Windows BMP、GIF、JPEG、PNG 等(JPEG 及PNG的支持通过libjpeg 及libpng 函数库提供)。
Windows 的资源文件支持,如位图、图标、光标等。
多字符集和多字体支持,目前支持ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8、UTF-16 编码)等字符集,支持等宽点阵字体、变宽点阵字体、Qt/Embedded 使用的嵌入式字体QPF、TrueType矢量字体(对TrueType 的支持通过freetype 1.3 函数库提供)。
输入法支持,用于提供各种可能的输入形式;内建有适合PC 平台的汉字(GB2312)输入法支持,包括内码、全拼、智能拼音、五笔及自然码等。
MiniGUI 的技术优势和其它针对嵌入式产品的图形系统相比,MiniGUI 在对系统的需求上具有如下几大优势:可伸缩性强。
MiniGUI 丰富的功能和可配置特性,使得它既可运行于CPU 主频只有60MHz 的低端产品中,亦可运行于高端嵌入式设备中,并使用MiniGUI 的高级控件风格及皮肤界面等技术,创建华丽的用户界面。
MiniGUI 的跨操作系统特性,使得MiniGUI 可运行在最简单的嵌入式操作系统之上,如uC/OS-II,也可以运行在具有现代操作系统特性的嵌入式操作系统之上,如Linux,而且MiniGUI 为嵌入式Linux 系统提供了完整的多窗口图形环境。
这些特性,使得MiniGUI 具有非常强的可伸缩性。
可伸缩性是MiniGUI 从设计之初就考虑且不断完善而来的。
这个特性使得MiniGUI 可应用于简单的行业终端,也可应用于复杂的消费类电子产品。