在嵌入式Linux下有好多图形界面系统GUI,包括Qt/Embedded,FLTK,Microwindows和GTK+等。作为一个开发者,究竟使用哪些样的GUI系统呢?对一个系统,将它改建为符合你的需求,你要做多少更改呢?更改后的系统的规格通常会有多大呢?那些都是开发人员会碰到的问题。我们在这儿讨论的就是要对那些内容做一个具体细致的剖析,通过我们的讨论,你们会对基于GTK+和X的GUI在嵌入式Linux下的应用有一个准确的了解。
正文
在嵌入式系统应用日渐发展的明天,越来越多的应用都须要使用到GUI来进行开发,借此来获得更好的交互性。
嵌入式Linux下GUI的选择,对大多数开发人员来说是一个须要权衡对比的过程。选择GTK+运行在X系统上,之后X系统运行在嵌入系统的framebuffer上,这会是一个挺好的选择。
GTK+与X的优点
其实,GTK+与X通常都是被你们考虑为容积较大的桌面系统的好搭配,但实际上对于嵌入系统来说,它也有着众多的优点:
1、X-window系统与GTK+都十分稳定可靠,X-window系统是经历了常年的开发及应用实践的,GTK+也是一个比较成熟的开放源代码项目;
2、X-window系统是一个灵活的client/server的模型结构,一个应用顾客端的崩溃不会影响到图形系统的其他部份,这是一个很重要的特点,它有利于支持第三方应用的扩充开发,而不影响到主体部份;
3、GTK+有两个重要的库:GDK和GLIB。GDK具象了底层的窗口管理,要移植GTK+到另一个不同的窗口系统的话,我们只须要移植GDK就可以了。GLIB是一个工具集合,它包括了数据类型,各类宏定义,类型转化,字符串处理,任何应用程序都可以链接这个GLIB库,使用其中的各类数据类型、方法,来防止重复代码,或则说防止开发人员重新发明轮子,这样有利于降低整个系统的规格;
4、对GTK+/X的剪裁是很容易的,它们有着挺好的可配置的选项,有着清晰的代码结构,可以保证安全正确地去除大段的不须要的代码;
5、GTK+有着大量的应用,GTK+早已被用在了好多重要的应用系统中;
6、GTK+的授权是LGPL形式的,X是non-copyleftfreelicense的,第三方开发的系统都能与它们进行链接;
7、GTK+/X两者都是基于C代码的linux删除文件夹,而不是C++;
8、GTK+使用C来实现了面向对象的构架;
其他GUI系统
其他可以选择的图形系统包括:Qt/Embedded,FLTK和Microwindows。
1、Qt/E是其中较中级的,它是一个完整的,基于framebuffer的GUI系统,由Trolltech公司开发;
2、Qt/E有着高效的图形渲染疗效,还包括TrueType字体系统,及alphablending半透明处理;
3、但Qt/E不是使用LGPL授权形式,而是使用两种授权形式:开发使用GPL,而商用须要授权与版税;
4、Qt/E是用C++编撰的;
5、Qt/E特别大,一个iPAQQPE就包括了3.3MB的Qt/E库和一个718KB的QPE库(和Xlib类似的一种库);
6、Qt/E不够稳定,QPEdemo不错,但出现过崩溃;
7、FLTK(theFastLightToolkit)是一个大型的GUI图形系统,它也是用C++写的开发linux应用--用gtk+和gdk开发linux图形用,特点太少,应用范围较少,不够成熟;
8、Microwindows和X-Window相比也是一个不错的选择,它占用大概100KB-600KB大小的显存开发linux应用--用gtk+和gdk开发linux图形用,和文件储存空间linux运维招聘,即使早已有了一个其上的GTK+移植,但还是不够成熟;
X-window:比你想像的要小好多
对于X-window系统,广大的网路开发者早已做了大量的工作来减少其的规格,最著名的有TinyX。可以通过对不须要的代码的剪裁及消除XLIB中静态数据来降低总体的规格,如:color管理系统,圆弧,粗腰线等。
在大多数开发人员的印象里,X系统很庞大,但实际上,你看到的,是这些对X不够了解的人的一种误读。在经过剪裁后的情况下,GTK+/X要比GTK+/FB与Qt/E还要来得有效,且XLIB对通常的应用程序有着更好的支持作用,应用程序的开发会显得更高效。