学习篇——纸上谈兵3:Linux的XServer续一

来源:互联网 发布:通达信资金博弈源码 编辑:程序博客网 时间:2024/03/29 22:28

 八、XFCE:Moblin选择XFCE作为桌面
  先到网上科普一下Xfce。
  Xfce是一款适用于多种 *NIX 系统的轻量级桌面环境。它被设计用来提高您的效率,在节省系统资源的同时,能够快速加载和执行应用程序。 —— Olivier Fourdan, Xfce 创始人
  Xfce是个完全的自由软件。Xfce的每个独立组件按BSD许可证、GNU通用公共许可证或GNU库通用公共许可证之一进行发布。
  Xfce建基在GTK+ 2.x之上。它使用Xfwm作为窗口管理器。Xfce有点像另一个商业的桌面环境CDE,不过在新版本中已经有较大分别了。Xfce同时为程序设计者提供开发框架。除了Xfce本身,还有第三方的程序使用Xfce的程序库,如文字编辑器 - Mousepad,多媒体播放程序 - xfmedia 与终端机模拟器 - Terminal emulator。

  Xfce 4.4 体现了传统 UNIX 哲学中的模块化和可复用性。它包含一系列的组件,这些组件一起提供了一个桌面环境的全部功能。所有组件都被独立打包,您可以自行选择安装各组件来构件一个属于您自己的最佳工作环境。它主要是由鼠标设定,而它的设定档通常不会被普通用户看到。
  Xfce 与 KDE、GNOME 相比是一个更为轻量的桌面环境,目前有些 Linux 发行版已将其作为默认的桌面环境,如 Xubuntu、Zenwalk 等。4.4.2版本是在2007年12月2日发行的。08年9月,发布了4.6得阿尔法测试版本。
  但是对于某些MID,需要构建自己炫耀的桌面,可以直接在GTK+2.x上进行开发,定制自己的桌面环境。而Moblin的资料是这么说的:在Moblin 2中使用了Xfce作为它的轻载桌面,但是在框架接口中,UI使用了GTK。

九、GTK和QT
  继续在网络共产主义进行科普学习。
  GTK (GIMP Toolkit) 是一套用于创建图形用户界面的工具包。它遵循 LGPL 许可证,所以你可以用它来开发开源软件、自由软件,甚至是封闭源代码的商业软件,而不用花费任何钱来购买许可证和使用权。这样的库太多了,windows 平台上有mfc、vcl等等,linux平台上更是层出不穷,而且好多都具备跨平台功能,比如Qt、wxWidgets、FLTK等等。gtk与这些库的不同点在于其完全使用C语言开发的。
  GTK 被称为 GIMP 工具包是因为最初写它是用来开发 GIMP (GNU 图像处理程序) 的,但是它现在已经被用于很多软件项目了,包括 GNOME (GNU 网络对象模型环境)。GTK 是在 GDK (GIMP Drawing Kit) 和 gdk-pixbuf 的基础上建立起来的,GDK 基本上是对访问窗口的底层函数 (在 X 窗口系统中是 Xlib) 的一层封装,gdk-pixbuf 是一个用于客户端图像处理的库。GTK 实质上是一个面向对象的应用程序接口 (API)。尽管完全用C写成的,但它是基于类和回调函数 (指向函数的指针) 的思想实现的。
  gtk+ 的作者之一 Perter Mattis说他原来开发的gtk包含了三套函数库, libglib、libgdk,和libgtk,这些库没有采用面向对象机制,因而无法实现构件的复用,而且消息机制是使用标准的回调机制实现的,而非现在的gtk+所提供的信号机制。“+”是用来区分原始版本和新版本的。gtk+ 依然是完全使用C语言开发的,但在设计上灵活运用了面向对象设计(OOD)思想。
  gtk+允许软件开发人员用简单的方式说出自己想要的东西,不会用所谓的正规方式给开发人员带来负担。在Windows下用过MFC的人们大都体验过 2/3的编程时间是在写GUI,写到最后都忘记了自己的角色是做应用程序的,而不是GUI开发者。CSDN的VC版里,N多牛人在炫他们的GUI技术,可他们从来不会去问:这个常用的组件为什么微软不为我们做好,直接调用呢?我很讨厌在写程序中,跌入GUI的陷阱里。如果我们所写的程序真的很有用,即使做成CUI式的,也会被很多人所喜欢。『这段话实在太合乎我的胃口了。从开发应用来讲,我更喜欢做server而不太喜欢client,其中有一个重要的原因就是界面问题,而且领导通常会对界面指手画脚,比实现的功能更为关心,而且不同的领导喜欢不同的风格,而他们的人生历练,和市场的普通认可不一样。同一个领导也是多变,因此对了迎合领导的需求,已经疲惫不堪。』
  gtk+是可移植的,而且具有多种语言前端,譬如C++、Perl、Python、TOM、Ada95、Free Pascal、Eiffel、JAVA,以及C#等等。在选定gtk+以前,我考虑很长时间是不是在下个项目的GUI程序开发中应该用大名鼎鼎的Qt,比较了好久,我放弃了Qt。虽然目前Qt的可移植性与易用性都优于gtk+,但C++的实现,让它过于笨重了,而且它的主要开发工作是在03年C++标准颁布之前进行的,与标准C++的兼容性实在是个问题。gtk+是C语言开发的,而C语言标准长期以来几乎没有变化,Qt要适应C++标准,应该要大动了。举个简单的例子吧,我们使用标准C++所提供的字串类型呢,还是去用Qt自己实现的?另外,与gtk+所遵循的版权协议相比,Qt要开发商业程序依然价格不菲。我觉得Qt的缺点就是过于大而全了。
『这样看C和C#的关系。我前段时间开始用C++编程,在VC上,有个很麻烦的问题,同时给出的XML解析器lib,不能在VC6(当然这个版本老点)编译通过,出现一堆错误。我又不想重新安装VC,最后花了点时间自己写了个XML解析器,更为轻载,而不利用VC带的特别的*.h或者lib,就两个2百多行的小程序,替代了同时数十个文件的东东。因为我其实只是个C&JAVA的程序员。C++确实很少碰到。所以GTK较之QT,也更为适合我的胃口』
  QT不是完全免费的(如果你的软件是商业的你就必须付费)我比较喜欢gtk,功能齐全,界面华丽,但相关文档太少。Qt是一个多平台的C++图形用户界面应用程序框架,由挪威 TrollTech 公司出品。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。自1996年Qt进入商业领域开始,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。Qt支持Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等操作系统, Qt的跨平台特性,是选择Qt的一个非常重要的原因。对于相同功能的软件,我们无须针对不同的操作系统编写不同程序,只需将相同的代码针对不同的环境编译即可。QT支持 2D/3D 图形渲染,支持 OpenGL。
  GTK-QT 主题引擎软件. 该软件基于GTK主题引擎,并使用QT风格编绘桌面,换句话说,该软件可以将GTK下的程序变为QT模式。如果你使用 KDE 桌面环境,那么需要这个 GTK-QT 主题引擎以让 GTK 应用程序的外观在 KDE 下保持一致。该主题引擎将应用所有的 Qt 设置到 GTK 应用程序,并直接使用 Qt 样式。
  相对于 GTK+,QT 很早就实现了 OpenGL Widget。

 

原文链接:http://flyingandflowing.spaces.live.com/blog/cns!7CE7F50A92172CE2!688.trak

有关Moblin的更多内容,请访问:Moblin专区

原创粉丝点击