﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-思想比知识更重要 成长比成功更重要-随笔分类-GUI</title><link>http://www.blogjava.net/renyangok/category/28661.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 04 Jan 2008 10:53:19 GMT</lastBuildDate><pubDate>Fri, 04 Jan 2008 10:53:19 GMT</pubDate><ttl>60</ttl><item><title>图形界面开发相关概念简单归纳</title><link>http://www.blogjava.net/renyangok/archive/2008/01/04/172744.html</link><dc:creator>保尔任</dc:creator><author>保尔任</author><pubDate>Fri, 04 Jan 2008 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/renyangok/archive/2008/01/04/172744.html</guid><wfw:comment>http://www.blogjava.net/renyangok/comments/172744.html</wfw:comment><comments>http://www.blogjava.net/renyangok/archive/2008/01/04/172744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/renyangok/comments/commentRss/172744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/renyangok/services/trackbacks/172744.html</trackback:ping><description><![CDATA[远古时代计算机的操作系统都是文字命令行界面（CLI），随着技术的发展，苹果公司第一个制造了有桌面环境（DE）的计算机。<br />
<br />
主流的操作系统：microsoft windows, mac os x, unix like中，前两者桌面环境不可变，但也有主题和第三方软件可以改变界面元素外观及界面本身。但unix like的ubuntu等操作系统是可以改变桌面环境的，例如：ubuntu使用Gnome桌面环境，kubuntu使用KDE桌面环境，Xubuntu 使用Xface桌面环境。<br />
<br />
不同的桌面环境是由不同或相同的用户图形界面开发工具包（GUI toolkits）实现的，例如：<br />
&nbsp;&nbsp;&nbsp; 1、GTK+<br />
<br />
&nbsp;&nbsp;&nbsp; GTK+基础<br />
<br />
&nbsp;&nbsp;&nbsp; GTK+最初是GIMP的专用开发库，后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件，并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。<br />
<br />
&nbsp;&nbsp;&nbsp; GTK+使用C语言开发，但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定，其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。<br />
<br />
&nbsp;&nbsp;&nbsp; 与其他很多部件工具箱不同，GTK+并不基于Xt。这一决策优劣互见：优点是GTK+可以应用于其他系统，其灵活性也很强；而缺点就是它无法利用以传统方法为X11定制的X资源数据库。<br />
<br />
&nbsp;&nbsp;&nbsp; Glade是一个界面设计工具，但是它也包含了一种描述GUI界面的XML语言，它和libglade一起工作就可以直接使用GTK和GNOME控件。<br />
<br />
&nbsp;&nbsp;&nbsp; 2、Qt<br />
<br />
&nbsp;&nbsp;&nbsp; Qt简介<br />
<br />
&nbsp;&nbsp;&nbsp; Qt是Trolltech公司的一个产品。<br />
&nbsp;&nbsp;&nbsp; Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展，并且 允许真正地组件编程。<br />
<br />
&nbsp;&nbsp;&nbsp; 自从1996年早些时候，Qt进入商业领域，它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础，KDE是所有主要的Linux发行版的一个标准组件。<br />
<br />
&nbsp;&nbsp;&nbsp; Qt支持下述平台： MS/Windows - 95、98、NT 4.0、ME、和2000，<br />
&nbsp;&nbsp;&nbsp; Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台<br />
&nbsp;&nbsp;&nbsp; Macintosh - Mac OS X<br />
&nbsp;&nbsp;&nbsp; Embedded - 有帧缓冲(framebuffer)支持的Linux平台。<br />
<br />
&nbsp;&nbsp;&nbsp; 3、wxWidgets<br />
<br />
&nbsp;&nbsp;&nbsp; 开源软件（LGPL），针对C++、Python以及Perl的跨平台工具集。wxWidget作为一个C++ GUI Library从1992发展到现在，已经在全球范围内产生了极大的影响力，利用这个类库进行GUI开发的软件更是不计其数。<br />
<br />
&nbsp;&nbsp;&nbsp; wxWidgets原名wxWindows，是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。Julian Smart现在是Anthemion软件公司的技术总监。<br />
<br />
&nbsp;&nbsp;&nbsp; 简单地说，wxWidgets提供了用于可在多平台上开发GUI应用程序的一整套简单易学易用的API。wxWidgets支持的多平台包括 Windows 3.1/95/98/NT/2000/XP、带有Motif 1.2版本以上的Unix、带有GTK+的Unix/Linux/*BSD、Mac等等。开发者只需要用自己使用的系统平台的编译器编译源程序，并链接上相应的库文件，生成的程序代码即具有该平台的外观和界面。在这些GUI之上，wxWidgets还提供了在线帮助、网络编程、流处理、多种常用图形格式支持、数据库支持、HTML察看和打印，等等各种强大的功能。<br />
<br />
&nbsp;&nbsp;&nbsp; 4，MFC<br />
&nbsp;&nbsp;&nbsp; 只能用于windows平台图形界面开发。<br />
<br />
&nbsp;&nbsp;&nbsp; wxWidgets和GTK+的一大吸引力是它的wxWidgets 2 licence类型是属于LGPL ( Lesser General Public License)的，也就是说，使用它开发的软件并不要求一定得公开源码。这样，无论是免费软件的开发者、GPL类型软件开发者，还是纯粹商业软件开发者都可以免费使用这个软件包。相比之下，TrollTech的Qt似乎正是因为此因素而影响了它的受接受程度，因为用Qt开发商用软件者所需交纳的费用对于个人<br />
&nbsp;&nbsp;&nbsp; 开发者来说还是比较昂贵的，而且分单平台、二平台、三平台（即Qt/X11、Qt/Windows和Qt/Mac都包含在内了）三个不同产品包，又分 Professional和Enterprise不同Edition亦即不同价位，而且开发人员数不同价格也不同。从这点说来，wxWidgets是绝对具有优势的。另外Qt起源于Linux上的开发，后来推展到Windows、Mac等其它平台；而wxWidgets恰好相反，始于Windows，其后移植到Unix等其它平台。<br />
<br />
这些GUI toolkits除了作桌面环境这样的大东东外，还可以作应用程序的图形界面。还有一些基于特定语言或播放器或工具的图形界面工具／包也可以完成这样的工作，比如java的AWT/SWING，eclipse的SWT／JFace（基于eclipse），python的wxPython， micromedia的flash/flex（我觉得也算，只不过要在flash播放器或浏览器的fash插件上跑）<br />
<br />
<br />
<img src ="http://www.blogjava.net/renyangok/aggbug/172744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/renyangok/" target="_blank">保尔任</a> 2008-01-04 14:57 <a href="http://www.blogjava.net/renyangok/archive/2008/01/04/172744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>