关于我们 | 联系我们

乐鱼体育-乐鱼app-乐鱼安卓app

荣誉资质
当前位置:主页 > 荣誉资质 >

GTK+和X在嵌入式Linux中的应用

本文摘要:在嵌入式Linux上有很多图形界面系统GUI,还包括Qt/Embedded,FLTK,Microwindows和GTK+等。作为一个开发者,究竟用于什么样的GUI系统呢?对一个系统,将它改建为合乎你的市场需求,你要做到多少改动呢?改动后的系统的尺寸一般不会有多大呢?这些都是开发人员不会遇上的问题。我们在这里辩论的就是要对这些内容做到一个明确精细的分析,通过我们的辩论,大家不会对基于GTK+和X的GUI在嵌入式Linux下的应用于有一个清楚的理解。

leyu乐鱼全站app

在嵌入式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代码的,而不是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++写出的,特性过于较少,应用于范围较较少,过于成熟期;  8、Microwindows和X-Window比起也是一个不俗的自由选择,它闲置约100KB-600KB大小的内存,和文件存储空间,虽然早已有了一个其上的GTK+重制,但还是过于成熟期;  X-window:比你想象的要小很多  对于X-window系统,广大的网络开发者早已做到了大量的工作来增大其的尺寸,最著名的有TinyX。

可以通过对不必须的代码的剪裁及除去XLIB中静态数据来增加总体的尺寸,如:color管理系统,弧形,粗线条等。  在大多数开发人员的印象里,X系统很可观,但实质上,你听见的,是那些对X过于理解的人的一种误会。在经过剪裁后的情况下,GTK+/X要比GTK+/FB与Qt/E还要远比有效地,且XLIB对一般的应用程序具有更佳的反对起到,应用程序的研发不会显得更加高效。

  如何剪裁GTK+  我们可以从标准的GTK+发售版本来剪裁,剪裁掉其中的不必须的,改动早已有的代码,并重新加入新的特性所必须的代码。剪裁的范围还包括小的改动,也还包括一些大的结构性的、核心的转变。

  1、除去Widgets窗口  最开始,我们把不必须的Widgets去杀掉,比如:GtkGamma、GtkHRuler、过时了的GtkList(被GtkCList所替代了)、和我们不必须的GtkFrame.边框。  2、Widgets窗口尺寸与绘制  接着,改动Widgets的大小与绘制方法,GTK+获取了一个主题引擎机制,来掌控窗口的外观与效果。

它容许在运营中设置字体,设置行间隔,设置绘制特性。这样的机制很不俗,但过于灵活性,代码中很多设置的地方都是用于软编码的方式;另外,一种主题,就是一堆额外的代码段和参数,这样不会减少整体的尺寸。  必须找到影响到窗口系统整体尺寸的内容,再行来改动它。

比如,一个按钮的大小与绘制,还包括这样的参数:边框的宽度,x/y的方位(主题引擎必须的参数),缺省的间隔(常量),缺省的左上角的方位(常量),取得焦点。这些在映射系统中并不需要那么原始,我们可以根据实际的市场需求来修改代码,来防止GTK+的复杂性。  另外,用于面向对象的方法,来承继窗口Widgets的特性,作为子类也是一个有效地的方法。

  3、GtkWindow  GTK+总是假设一个窗口里面包括了另一个窗口,它们就是嵌套关系。但对于我们常常不会遇到的有软键盘的应用于时,就不完全正确了。

软键盘虽然是归属于一个窗口的,但却不会远超过那个窗口。所以为了突破这个假设,必须对GtkWindow减少一些特性,将软键盘处置成一种类似的子窗口。  软键盘所在的窗口,必须处置软键盘的按键事件,并将按键转发给软键盘工具条。当软键盘按下,软键盘的消息传递函数就被登记到完整窗口上,这样软键盘就不会号召按键事件。

在GtkWindow上减少模块,可以创立,号召按键。  在小屏幕的映射系统中,可以将滚动条做到得更加修改些,去除边框,用于单个滚动条。

这些都更加合适映射系统。  字体管理系统  在字体管理方面,要寻找一个轻型的机制来在嵌入式系统表明各种字体,并不是那么非常简单,艰难在于GTK+的大型的Widget风格与X系统的老式的字体管理机制的融合所引发的问题。  前面提及的,主题引擎方式的GTK+是用来掌控窗口的样式与外观的。

在一个窗口表明之前,它不会获得一个式样对象,GtkStyle,它可以是一个指向父窗口的式样对象指针,或者是一个新的类型,这些式样对象将被应用于到这个窗口及它的子窗口。这个式样由缺省值、rc文本文件、应用于来确认。


本文关键词:GTK+,和,在,嵌入式,Linux,中的,应用,乐鱼官网推荐,在,嵌入式

本文来源:leyu乐鱼全站app-www.annerinestone.com

Copyright © 2007-2021 www.annerinestone.com. leyu乐鱼全站app科技 版权所有 备案号:ICP备72020699号-5