1、GTK+ (Gtkmm)
GTK+基础
GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。
GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。
与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。
Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件。
2、Qt
Qt简介
Qt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且 允许真正地组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
Qt支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和2000
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台。
3、wxWidgets
开源软件(LGPL),针对C++、Python以及Perl的跨平台工具集。
详细介绍,参见细述 wxWindows
wxWidget作为一个C++ GUI Library从1992发展到现在,已经在全球范围内产生了极大的影响力,利用这个类库进行GUI开发的软件更是不计其数。
wxWidgets原名wxWindows,是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。Julian Smart现在是Anthemion软件公司的技术总监。
简单地说,wxWidgets提供了用于可在多平台上开发GUI应用程序的一整套简单易学易用的API。wxWidgets支持的多平台包括
Windows 3.1/95/98/NT/2000/XP、带有Motif
1.2版本以上的Unix、带有GTK+的Unix/Linux/*BSD、Mac等等。开发者只需要用自己使用的系统平台的编译器编译源程序,并链接上
相应的库文件,生成的程序代码即具有该平台的外观和界面。在这些GUI之上,wxWidgets还提供了在线帮助、网络编程、流处理、多种常用图形格式支
持、数据库支持、HTML察看和打印,等等各种强大的功能。
wxWidgets支持的Windows上的多种流行编译器包括:
Visual C++ 1.5, 4.0, 5.0, 6.0
Borland C++ 4.5, 5.0
Borland C++ Builder 1.0, 3.0
Watcom C++ 10.6 (Win32)
Cygwin
MinGW32
Metrowerks CodeWarrior 4
4、Fox
What is FOX?
FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and
effectively. It offers a wide, and growing, collection of Controls, and provides
state of the art facilities such as drag and drop, selection, as well as OpenGL
widgets for 3D graphical manipulation. FOX also implements icons, images, and
user-convenience features such as status line help, and tooltips.
Tooltips may even be used for 3D objects!
Considerable importance has been placed on making FOX one of the fastest
toolkits around, and to minimize memory use:- FOX uses a number of techniques
to speed up drawing and spatial layout of the GUI. Memory is conserved by
allowing programmers to create and destroy GUI elements on the fly.
Even though FOX offers a large collection of Controls already, FOX leverages C++
to allow programmers to easily build additional Controls and GUI elements,
simply by taking existing controls, and creating a derived class which simply
adds or redefines the desired behavior.
One of the prime design goals of FOX is the ease of programming; thus, most
controls can be created using a single line of C++ code; most parameters have
sensible default values, so that they may be omitted, and layout managers ensure
that designers of GUI's do not have to worry about precise alignments.
Another nice feature of FOX which significantly reduces the number of lines of
code which have to be written is FOX's ability to have widgets connect to each
other, and passing certain commands between them; for example, a menu entry Hide
Toolbar can be directly connected to the Toolbar, and cause it to hide.
Finally, FOX makes it easy to maintain the state of the GUI in an application
by having the GUI elements automatically updating themselves by interrogating
the application's state. This feature eliminates the large amount of effort that
may go into sensitizing, graying out, checking/unchecking etc. depending on
the application state.
FOX is Platform Independence!
|
The list of platforms is growing! Currently, we have FOX
running on a large number of operating systems, ranging from Linux,
FreeBSD, SGI IRIX, HP-UX, IBM AIX, SUN Solaris, DEC/Compaq Tru64 UNIX,
to MS-Window operating systems like Windows 9x, Windows NT, Windows ME
and Windows 2000. Since most of the FOX implementation is completely
oblivious to the underlying platform (in many cases it is not even
including header files), applications work virtually identically on all
these platforms.
For example, here is the FOX textedit sample application running under Windows NT. And here is the same application running on a Silicon
GraphicsOctane system.
个人比较喜欢Gtkmm,代码比较干净,只有GUI,但在Windows下的效果似乎没有原生的Window控件好
Features
- Use inheritance to derive custom widgets.
- Type-safe signal handlers, in standard C++.
- Polymorphism.
- Use of Standard C++ Library, including strings, containers, and iterators.
- Full internationalisation with UTF8.
- Complete C++ memory management
- Object composition
- Automatic deallocation of dynamically allocated widgets.
- Full use of C++ namespaces.
- No macros.
- Cross-platform:
Linux (gcc), FreeBSD (gcc), NetBSD (gcc), Solaris (gcc, Forte), Win32
(gcc, MSVC++ .Net 2003), MacOS X (gcc), others
- Free software and free of cost for both Open Source and
proprietary development.
- Discussed, designed and implemented in public.