开发者社区> double2li> 正文

C++ 100款开源界面库 (10)

简介: (声明:Alberl以后说到开源库,一般都是指著名的、或者不著名但维护至少3年以上的。那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码。这里并不是贬低,像Alberl前面那个系列的教程《2013 duilib入门简明教程》,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的。
(声明:Alberl以后说到开源库,一般都是指著名的、或者不著名但维护至少3年以上的。那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码。这里并不是贬低,像Alberl前面那个系列的教程《2013 duilib入门简明教程》,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的。这些都称之为开源代码,其实开源代码对新手的帮助更大,因为很简明的说明了代码用法~O(∩_∩)O~)
    C++相对于Java和C#而言,确实有点悲催。C#有强大的微软做后盾,Java也是被Sun养大,而C和C++由贝尔实验室发明,毕竟C++只是贝尔实验室中很普通的一项发明,并且C++的最大受益者也不是贝尔实验室,从C++ 03 到C++ 2011隔了8年时间,显然没有Java和C#及时,毕竟他们都是公司运作,并且是公司中很重要的成员。而C++的推动就只能靠开源社区啦,boost是最大的贡献者啦,然后就是linux社区、Apache等公司,再接着就是各种开源库的作者啦。
    没有公司的运作,显然很多方面都比不上Java和C#。比如C#有个很著名的NOPI,操作Office毫无压力,而C++就只有几个没人维护的库,还不如用微软的COM接口。java有个很著名的JFreeChart,显示各种曲线图表都够了,但C++就没有,只有Codeproject上面有几个,不过还是达不到要求,但是商业的曲线库老板又不会买,就苦了我等码农了。Office还好,微软的接口一向好用,在现有开源代码的基础上,花个把星期就可以封装个很不错的库。而曲线图表这个东东不像按钮控件,真的很难做,难做的不是画图,而是各种曲线的管理,和各种效果功能的实现,细节问题一大堆,而C#和Java却不会遇到这种常用控件还要开发的问题。 这只是其中的两个例子而已,Alberl平时查资料的时候,也发现了C++的很多不给力(主要体现在界面方向,逻辑方向倒是非常给力),因为C++本来就只是逻辑处理,连多线程都没有,界面就更别提了,而C#和Java都是一整套开发框架,所以非常省事。注意啦,这里不是劝大家不要用C++,而是说C++真的需要做很多事情。对C++开源库的牢骚完毕^_^
    还记得第二个教程给出了数十款播放器的对比吗? 同样有NB的老外给C++的界面库也做了详细对比,同样也有上百种~O(∩_∩)O~

The GUI Toolkit, Framework Page

User interfaces occupy an important part of software development. This page provides a comprehensive reference on toolkits for building graphical user interfaces (GUIs), with emphasis on resources for Free Software (Open Source). This page focuses on personal computers but also references some offerings for embedded products.
Note to people using the geocities.com site: if you see the site down due to bandwidth limit being exceeded, please consider using the other site listed below 

GUI Toolkit developers: please let 
me know of news/changes to your projects/products so I can update this page accordingly.

This page resides in http://www.geocities.com/SiliconValley/Vista/7184/guitool.html and 

Page created April 17, 1997 (86). recent changes

Thanks to Alejandro de Garate for improving the layout of this page .© Copyright 1997-2003, 2005 ( ROC Years 86-92, 94,96), by Li-Cheng (Andy) Tai. See copyright for details. Last updated  May 13, 2007 (96)
Free toolkitsC/C++ Java other languages    | commercial toolkitsC/C++ Java   | Related links   | copyright
GPL: GNU General Public License 
LGPL:GNU Library/Lesser General Public License 
PD: Public Domain 
BSD: BSD or X11-like license (commonly allowing you todo whatever you want provided the original copyright notice is kept and credit given)
Art: The Perl Artistic License 
MPL: Mozilla Public License

Free Toolkits (including both Free (in the GNU sense) and no-cost ones)

C/C++ oriented

(unless explicit stated with "C API", all toolkits in this table provide APIs in C++) 
Name Comments license Unix X11+ UnixX11+Motif MS Win 95/98 MS Win NT/2000/
MS Win 3.1 OS/2 PM MacOS NextStepOpenStep 
other platforms
AbiWord 's cross platform layer cross-platform framework
in C++
see interesting development methodology for more info
Unix version built on gtk+
GPL         QNX and BeOS
AbsoluteX n open source free class library primarily developed for use with X Window System. Uses libsigc++. LGPL y                
a cross-plataform, easy-to-use, non-intrusive C++ GUI library that runs on top of SDL 
LGPL (via SDL) (viaSDL) (via SDL) (via SDL) (viaSDL) (via SDL) (via SDL) (via SDL) (via SDL)
a high-level graphical C application framework aimed primarly at 2D/3D games and simulations. Agar applications are portable to a variety of platforms thanks to theSDL.support for SDL 2D and OpenGLrendering. Thread safe BSD
y (via SDL) (viaSDL) y (via SDL) y (via SDL) (viaSDL) (via SDL) y (viaSDL) y (via SDL) other platforms supported by SDL
Amiga Foundation Class  aims to support Amiga and X11 art ?               Amiga (?)
AlfaGUI a small GUI library for DOS, useful for embedded applications   y               DOS 16/32 bit
OpenAmulet( discounted?)
research-oriented toolkit from CMU. native look andfeel. High-level support for interactive interfaces: Direct Manipulation Behaviors, Undo, Animation, etc. original project at CMU completed and Nolonger supported. However, another group has picked up development as OpenAmulet. PD y   y y     y    
Andrew research system from CMU. C and C++ API. BSD y                
Bakery a C++ Framework for creating GNOMEapplications using Gnome-- and 
LGPL y                
a totally new window system for Unix/Linux that alsoincludes high level APIs for GUI programming.  Very experimental asit buids upon  OpenGL and CORBA.  Successor ofFresco andOffix. Also listed as an alternative windowing system

Berlin renamed to Fresco in 2002, taking on the name of the old GUI toolkit Fresco
BGUI GUI library for Amiga.based on BOOPS. C API. freely distributable                 Amiga
CG(link broken?) GUI toolkit of the Arachne project BSD y   y y     y    
CLXgood (Component Library for Cross-platform)Cross-platform library for, and part of, Delphi,Kylix and CBuilder - Based on 
top of Qt, Linux only
GPL y                
Coral (ctGUI) very powerful and complete advanced application framework with strong GUI components.  Advanced functionalities for non-GUI tasks like networking, shared memory, etc. Art y   y y         Amiga (old versions)

C++/Tk, cpptk
C++ interface to the Tk library tries to provide not only the Tk functionality, but also its wayof writing code, based on the syntax used in Tcl/Tk. BSD y   y y       y(?)  
a C++ application framework and utility library for single-source Mac/Windows applications
non-profit use only
Cvo   BSD y                
CX an "UI utility with themes support." just begin. LGPL y                
DCLAP bare-bone application framework. Nolonger developed and maintained for 3 years already noncommercial only   y y y y   y    
EasyGTK (link broken?)  EasyGTK is a wrapper library to make GTK programmingeasier, and quicker GPL y                
Epeios Collection of general purposes libraries essentially coded in C++ and working under UNIX and Windows. containing GUI library GPL y   y y          
ET++  project is completed. successor is MET++. BSD y(?) y(?)              
EZWGL C API. motif look and feel. LGPL y                
Fltk The Fast Light Tool Kit. API modeled afterXform,but in C++. SGI Motif look and feel. good documentation.( Fluid, an UI builder) LGPL with additional permissions y   y y    y  y  y
FOX C++-based toolkit on top of XLib. MS Win 95 look.under development LGPL with additional permissions y    y y        
Fresco (old)

also see Berlin as the new Fresco
Advanced research toolkit formly supported by theX Consortium but now independently developed. Successor to Interviews.( alt. page)( Java version) 
( another info page) 
development stopped,  succeeded by Berlin
BSD y   y y     y    
GEM The old GUI environment for MSDOS and Atari ST (about1985), now free  software GPL                 MS-DOS and Atari ST
GEM++ C++ classes for GEM programming, for Atari ST. LGPL                  
GINA  a research project, is completed. (ftp)     y              
GLOW "a cross-platform object-oriented framework for building interactive applications usingOpenGL or similar APIs such as Mesa. It is, at its heart, an C++ wrapper for GLUT, providing a fully object-oriented API for creating windows, menus and other GUI elements, and for event handling. GLOW also features an extensible cross-platform widget library for building powerful user interfaces."Note:Thusportable to any platform where a functional OpenGL implementation exists(including Mesa ) LGPL note note note note note note note note note
GLUI An OpenGL /GLUT-basedGUI toolkit.   Rendering is done entirely in OpenGL. Win 95 lookand feel.  Note: Thusportable to any platform where a functional OpenGL implementation exists(including Mesa ) LGPL note note note note note note note note note
GNOME (libs) the GNOME desktop also servesas an application framework, C API. Requirers gtk+ LGPL y                
GNUstep envolving NextStep/OpenStep clone. C/Objective CAPI. Version 0.6.6 just released LGPL  y                
gnewt a gtk+-based toolkit for writing simple user interfaces LGPL y                
grafix a library for "drawing pictures, functions or othergraphic objects in an interactive manner" or simple graphical user interfaceconstruction" with emphasis on visualization, not UI GPL y                
GraphAPP C API. a small toolkit for teaching. ? y y ? ? y        
gtk+ The GIMP Toolkit.developed as part of theGIMP project. Now at version 2.2. C API. ISthe leading toolkit in the free software community in conjuction with Qt. variable  look and feel (default:Motif).  
(ftp) (mailing list) ( gtk--,a C++ wrapper)(Gtkkitand Gtoolkit , ObjectC wrappers) (wxGTKWxWindows port to gtk+ (C++ API)) (gtkv,Vport to gtk+ (C++ API)) 
(VDK , SDPGTKInti, other C++ wrappers) 
gladegradepingle,UI builders for gtk+ and gtk-- 
libglade , a library for gtk/ GNOME  allowing GUI built at run time from specifications in configuration files in XML format, without the need to recompile program 
LGPL y   y y        in progress BeOS , Linux consoleDirectFB
gtkmm (gtk--)
gnomemm (gnome--)
complete C++ wrapper for gtk+ and GNOME. Uses modern C++ features (templates, etc.) for type-safe callbacks and signal/slots withlibsigc++ . glade--,GUI builders for gtk-- 
related: gnomemm, c++ bindings for GNOME
LGPL y                
"a class set which allow You to build applications with new Microsoft interface style .It includes more than 50 of MFC classes"
no cost use
Harmony attempts to create a Qt clone witha true Free Software license.  Development is halted.  LGPL unfinished                
Hv C API. ?   y              
  Ivtoolsis an actively maintained and envolved version of Interviews, formerly by VectaportIvtool apps can be embedded inside Motif and Xt canvas. Ivrools contains an application framework, GUI widget framework, Acommand interpreter , drawing editor application framework,  command interpreter into the drawing editor and graph/network application 
Interviews (ftp) was  
an early advanced toolkit whose development stopped around  1993. conceptual successor is  Fresco.
BSD y                
Inti a set of integrated foundation libraries for developingC++ applications on UNIX-like systems such as Linux, including C++ wrapper for gtk+.(2.0 only) new developer, now in version 1.0 beta. LGPL y                
IUP ANSI C, native controls, custom contros, abstract layout, only a few functions, Lua Scripting  freely distributable              
IBTK a small, "basic self-contained no-frills toolkitto create platform-independent GUI software (in C++) GPL y                
JAPI Written in 
JAVA and C,  provides the JAVA AWT Toolkit to non object oriented Languages like C, Fortran, Pascal, Ada and even Basic
LGPL y y y y          
JUCE an all-encompassing C++ class library for developing cross-platform applications GPL     y y       y  
KaiView stalled in favor of the LIP . recently resumed ? y                
KDE(libs) KDE desktop  also serves as anapplication framework. Requires Qt LGPL y                
LessTif an envolving Motif 1.2 clone. getting close to becomea complete Motif substitution. C API. LGPL y                
LGI (Lightweight GUI Interface) also for BeOS
"a small enough library that one person can understand it all."
LGPL   y y         BeOS
libgui C API. BSD y                
a lightweight, non-intrusive, public-domain C++ widget library for writing X11 applications public domain
libsx "the Simple X library -- is a lightweight wrapperlibrary sitting on top of the Athena Widget set." C API LGPL y                
LIP Linux Interface Project. still under development, in the beginning stage. development stalled? LGPL(?) 
MacAPP Apple 's Mac framework, probably the first widely available GUI framework.   No longer supported by Apple but third party development at http://www.clubmacapp.com/ MacAPP license     y (unfinished) y (unfinished)     y y  
Marx C API. the GUI toolkit is part of a C-like scriptlanguage for quickly building GUIs, although also usable from compiled C. Motif look and feel. GPL y                
C++ API. Framework on top of Carbon API.
MacZoop license
MET++ "an object-oriented application framework .... providingreusable objects for 2D graphics, user interface components, 3D graphics,video, audio, and music." based on ET++. ? y   ? y(?)     y(?)    
MGUI C API. ? y   y y y        
Microwindows a small windowing system providing Win32 and X11API, targetting embedded systems. C API MPL, GPL y               MS-DOS, Linux framebuffer, RTEMS, Linux SVGAlib
MiniGUI " a compact Graphics User Interface (GUI) support system for Linux. MiniGUI defines some Win32-like APIs for the applications. The goal of MiniGUI is keeping its features of small and exquisiteness to provide a small windowing system support library." LGPL y               Linux framebuffer, Linux SVGAlib and libCGI
The real Motif, the traditional standard Unix X11 toolkit, now moving toward free/open source software.  C API. OpenGroup Public License(free for free/open source unices only) y native              
Motif++ C++ wrapper for motif. ?   y              
notif written in object-oriented C.  C API. Motiflook and feel. ( announcement) GPL y                
NGL, NUIgood
NGL is an application framework intended to work with SGI's OpenGL* API. NUI is a cross-platform C++ GUI programming framework for OpenGL applications built on top of the NGL 
note note note note note note note note note
NWS distributed as part of Pavuk.C API. GPL y                
OPaC(link broken?) "a highly portable user interface toolkit with dynamicedition." look and feel and behavior are adjustable/editable at run time "OPaCFree Public License"  unfinished (?)   y y   unfinished unfinished    
OpenOffice(as an GUI application framework ) possibly modern forms of StarView?containing a complete application framework and GUI library as the basis of an office suite, including low level GUI toolkit (VCL),application frameworkgraphics applications services GPL/LGPL/SISSL y   y          
Offix a very rich C++ interactive application API withclasses for X11 windows, images, events, clipboards, inter-application communications, styles for look and feel, layout management and drag anddrop.  Also has classes for Unix system services. Open Look and Motiflook and feel. In alpha  release. No longerdeveloped, work merged into Berlin LGPL y                
OpenGUI a small  graphics  &   windowing library  built  upon a  fast,    low-level  x86 asm  graphics  kernel. Windows 95 look and feel LGPL                 Linux console, MS-DOSDJDPP, QNX
ParaGUI a high-level crossplatform application framework and GUI library. It is completely based on the SimpleDirectMedia Layer (SDL). Works on any environment where SDL exists. LGPL y (via SDL)   y (via SDL) y (via SDL)     y (viaSDL)    
"a new Graphical User Interface architecture designed with embedded systems in mind. ... includes low-level graphics and input, widgets, themeing, layout, font rendering, network transparency, and debugging features." Also can be an alternative windowing system (when running on framebuffers) GPL/LGPL
y (native or via SDL)   y          y (via SDL) Linux frame buffer, numerous embedded devices (see this list)
Pingo a C++ class library and framework for X Window Systemwith OSF/MOTIF look-and-feel. API is similar to the Java AWT API. LGPL   y              
Qt a high-quality framework. hasadvanced features not present in other toolkits, such a full 2d graphics API (with rotations, scaling, shearing, etc.), metafile support, same code for screen and printer output. variable look and feel (default:Motif or Win95). at version 4
KDevelop , EBuilderQt Architect ,QtDesigner and QtEZ, UI buildersfor Qt
Qwt, additional GUI components for Qt for scientific appl

(see this link for info on integration withMotif)
Qt Free Edition license (1.x series, X11 versiion)  
QPL( Qt 2.x series, X11 version) 
QPL and GPL(Qt 2.2 and later, X11 version) 
(Windows  and MacOS  X) (GPLed)
(QPL and GPL)   (GPLed) (GPLed)      y(GPLed)     Qt/Embedded: for the Linux frame buffer without X.
SmartWin a small sized, extremely type safe, no overhead what so ever, fully template based C++ GUI library for Windows API (formerly known as Win 32 API). GPL plus additional permissions     y (?) y          
STDWIN C API. No longer supported. ? y           y    
SUIT Simple User Interface Toolkit. C API. y       y   y    
information in Spanish... no English info available.
y (?)
Tk good widget set but not frequently used as a pure C library. Widely used in combination with high-level script languages (TclScheme,Python, Perl,etc.). C API. Native look and feel. BSD y   y y y   y  y  
TOAD in early stage, still alpha LGPL y                
Trixul is an XML and JavaScript GUI toolkit that supports MacOS X, Linux, and Windows environments directly via Cocoa, Gtk+, and .NET native implementations. JavaScript code can call C++ directly. BSD
y (on top ofgtk+)
y (on top of .Net Forms)
implementation of MS Windows API on other platforms.C API. LGPL y   native native  native   y    
Ultimate++ C++ toolkit that "achieves significant reduction of code complexity for most applications when compared to other development platforms" BSD y   y y          
V Common C++ wrapper for many platforms. a good "competitor"of WxWidfgets.native look and feel.  ( gtkv, gtk+ port of V) LGPL y y y y y      
VDK "Visual Development Kit", a C++ wrapper forgtk+ ( VDK Builder, a RAD tool for VDK) LGPL y                
Vibrant (NCBI Toolkit) part of National Center for Biotechnology Informationsoftware development toolkit, a multi-platform user interface developmentlibrary that automatically handles the behavior of GUI objects, with callbacksto programs     y y(?) y(?) y(?)   y    
(TheHungry) ViewKit  a clone of the SGI (ICS) Viewkit.Currently not being developed. LGPL(?) (in the future with lesstif) y              
ViewKit (ICS) C++ framework for Motif.  Freely available for Linux Only. no-cost (for Linux only)   y              
Visual Component Framework, "a simple to use cross platform GUI framework, with many of the advanced design features of Java and Java's Swing, and Borland's Visual Component Library.Also provides advanced RTTI/Introspection features common in languages like Object Pascal, Objective C, Smalltalk, and Java, but not typically found in C++" BSD
in development

in development
VXCL The Virtual X Class Library. API strongly linked to the Win32 API. LGPL    y y y        
VxLib Visual Text Library, a "character cell"-based librarylike text mode but displayed in a X window GPL  y                
Wafe "Wafe (Widget[Athena]front end) is a package thatimplements a symbolic, string based interface based on Tcl to the X Toolkit, the Athena Widget Set , Motif and various complementary widget classes and extension packages. " C API. BSD y y              

a simple, platform independent dialog manager library using

LGPL (via SDL) (viaSDL) (via SDL) (via SDL) (viaSDL) (via SDL) (via SDL) (via SDL) (via SDL)
Whisper "general purpose Mac/Win32 C++ application framework. successor to the Mac framework Raven.  
is a modern framework that takes advantage of templates, multiple inheritance, STL, and exceptions. is designed around the notionof Design by Contract and includes numerous debugging tools."
BSD     y y y   y    
WideStudio an IDE with an original windowing library and visual window editor and a rich set of development facilities BSD y   y y       y  
Wine "a free implementation of Windows (API) on Unix" On Intel x86 PCs only, can be used to port Windows programs to X11 LGPL y (Intel x86 PC only)   native  native native y      
WIRP "Windows Interface Reduced Programming is a libraryof c routines for simple, platform independent GUI programming." C API.  ? y                
WWL( ?) C++ classes around X widgets. ? y(?) y(?)              
WxWidgets (formerly wxWindows) Common C++ wrapper for many platforms. version 2,.4  just released. native look and feel. good cross-platform support.(Wxxt, X Toolkit port) 
( WxGTKgtk+ port)
BSD(version1.x only) 
LGPL ( wxxt1.6xonly) 
WxWidgets license (version 3.0, actually LGPL plus exceptions)
y y y y y y y y also on top of MicroWindows, and MGL 
Xarm a C++ wrapper for Motif. LGPL   y              
X|Front "a C++ library providing an object-oriented interfaceto X11R5 Xlib" BSD y                
xclasses "the X11 layout library." details available in Germanonly  
note another toolkit has the samename
LGPL ?                
xclasses, xclass95 developed in conjuction with thefvwm95window manager. MS-Win 95 look and feel. 
note another toolkit has the samename
LGPL y                
XForms a toolkit distributed in binary form only. C API. (fdesign,a UI builder) X Forms license y                
Xm++ (?) C++ classes for Motif and X11 Athena widgets ? y y              
Xmt (Motif Tools),Xmt++ "Xmt is a Motif Tools library. The Xmt Motif Tools library provides developers of user interfaces tools that make Motif easier to use. Xmt consists of the core library of additional widgets, utility programs, docs, tutorials, and example code." C API. Supports rapid prototyping, GUI story boarding. 
"Xmt++ is to provide a C++ Model-View-Controller framework implementation based on Xmt. This framework makes it easier to integrate a Motif GUI to an application and maintain design integrity." 
BSD y                
XPIP C API BSD y                
XPToolkit (Xpfe) cross-platform, toolkit for Mozilla."An open source SDK for building common cross-platform user interfaces usingexisting cross-platform 
standards (e.g., XML, RDF, HTML, CSS, DOM, JavaScript) and technologies (e.g., Gecko, XPConnect) to minimize 
platform-specific code." May built on top ofgtk+ and Xt for X11
MPL/GPL/LGPL y (Xt, gtk) ? y y y  y y  y  BeOS
XView the Open Look widget set. C API. no longer supportedby Sun in favor of Motif.   y                
YACL (link broken?)
native look and feel BSD   y y y y y      
YAAF Yet Another Application Framwork,  with fairlycomplete  GUI classes and good cross-platform support BSD y   y y     y    
yzone a set of universal cross-platform libraries for creationof the graphical modular applications for any UNIX or Microsoft Windowsplatform. C API LGPL y   y y          
Zinc  well stablished, cross-platform 
 framework. supports 24 platforms  (including MS DOS and Unix text mode) 
desktop use only (not for  embedded applications)   y y y y y      MS-DOS, VxWorks, pSOS
Zoolib "Zoolib provides a GUI toolkit with a uniquely flexible layout system. It also provides a single-file database format, TCP networking, and extensive debugging support. ZooLib applications are multithreaded. ZooLib requires only minimal support from the underlying OS and platform GUI layer, and thus could be ported to a completely new platform without too much difficulty" BSD y   y y     y  y BeOS
Zune Amiga MUI clone for X11 LGPL y                
Name Comments license Unix X11 + UnixX11 +Motif MS Win 95/98 MS Win NT/2000/
MS Win 3.1 OS/2 PM MacOS NextStepOpenStep
other platforms
(+X11 has been ported to OS/2 so theoretically X-based toolkits work in OS/2 X11 as well. see Xfree86/OS2)

to top

Java oriented


  • RAPID, Rapid Ada Portable Interface Design tool,. generates Ada code using a platform independent GUI library. (Current implementations utilize the TASHbinding to Tcl/Tk, the GNAT to JVM compiler, the Microsoft .NET framework, or GtkAd)


  • wxBasic, a BASIC interpreter with bindings for WxWidfgets (LGPLed)
  • JAPI,binding for Java AWT (LGPLed)



  • Tk,the standard widget set for Tcl, for X11, MS Windows, and MacOS.
  • itcl ([incrTcl]), with itk ([incrTk]) and [ incr Widgets] ,object-oriented extension to the Tcl language and associated mega-widgetset and GUI framework.
  • BLT extensionto the Tk toolkit.
  • Tix, the Tk InterfaceExtension.
  • TclMotif, Motif binding for Tcl.
  • BWidgets ,"a professional look&feel Toolkit.  Everything is native so noplatform compilation, no compiled extension library needed. In Pure Tcl/Tk.For Unix, Windows and Mac."  ( LGPLed)
  • Tcl-gtk , gtk+ binding for Tcl
  • PicoGUI


Modula 2




  • Vexi written in Java, Vexi applications are written in a combination of XML and JavaScript  (core GPLed, widgets LGPLed)

Scheme (including Guile)



  • Squeak, an advanced SmallTalk environment (including GUI support natively) (license)






  • CoderForm, a presentation and layout manager for .NET desktop applications, allowing creating the GUI from any .Net language
to top

Commercial Toolkits

C/C++ oriented

Name  Comments Unix X11 Unix X11Motif MS Win 95/98 MS Win NT/2000/
MS Win 3.1 OS/2 PM MacOS NextSTEPOpenSTEP
MFC Microsoft Foundation Class library. probably themost dominant toolkit today  y (3rd party,MainWin) y (3rd party,Bristol) y y y   (add-on)    
OWL Borland Object Windows Library. once the king before MFC comes... ( OWL resources )     y y y  ? ?    
VCL Visual Component Library, Borland/Inprise's curent-generation GUI class library     y y          
CLX (Component Library for Cross-platform) Cross-platform library for Delphi , Kylix and CBuilder - Based on topof Qt, works on Win32 and GNU/Linux (x86) y
ClassAct                   y
CPLAT a C++ framework for Mac and Windows   y y y(?)   y    
a C++ application framework and utility library for single-source Mac/Windows applications
Framework rich DOS-based business application development environment, orginated from Ashton-Tate's Framework product, with FRED. Object-Function-Based, Text-Aware, rapid application development Language                  
Galaxy  well established, cross-platform framework  
( companyout of business)
  y y y y y y    
ILOGViews well established, cross-platform framework. commercialproduct with capabilities similar to Interviews y y y y y y      
JX a full-featured C++ application framework and widget library (SDK) for use with the X Window System y                
Latitude (product dropped?) MacOS API on Unix and Mac OS X (OpenStep) y           native y  
MacAPP Apple 's Mac framework, probably the first widely available GUI framework.   No longer supported by Apple but third party development at http://www.clubmacapp.com/     y (unfinished) y (unfinished)     y y  
MainWin/XDE MS Win API on X11. y    native  native  native        
MUI "Magic User Interface", popular in Amigacommunity                 y
NoWait a shareware GUI Application framework.     y y y y      
ObjectViews(product dropped?) commercial version of Interviews, OpenLook or Motif look and feel, switchable on the fly   unfinished  unfinished          
OpenClass from IBM/Taligentfor IBM VisualAge for C++also supports OS/400   y (AIX and Sun Solaris only)           
Presenter (OpenInterface Element) full-featured, strong international language support, high performance GUI, rich widget set, supported worldwide y y y y y  
OpenStep (Cocoa) Apple's application API for developing Mac OS X applicationsworking on different platforms     y (?) y (?)    y (?)   native  
OpenUI really a User Interface Management System   y y y y y y    
PowerPlant  included with Metrowerk's Mac OS compilers.         y    
Qt an advanced, high quality toolkit. free/open source license available..Version 3 released. y   y y y    see Mac OS X y  
SansGUI An object-oriented modeling and simulation environment for 
developing and deploying scientific and engineering 
without writing any GUI code. Support Visual C++ and Compaq Visual Fortran.
    y y          
SL-GMS specialized framework for dynamic graphics for monitoringand control Systems, can integrate with other "native" frameworks   y y y ?        
StarView no longer available?  (see OpenOffice) ? ? ? ? ? ? ?    
Think Class Library An early commercial GUI framework for Mac             y    
ViewKit ( SGI,ICS)  C++ framework for Motif   y  y          
ViewTouch "open framework source for rapid development of opennetwork computing applications" such as touchscreen y (withlesstif )  y              
WindU MS Win API on Motif, with MFCsupport   y native native  native         
WM_Motif MS Win API on Motif   y native  native  native         
WNDX     y y y y   y    
X Designer really a GUI builder. Unix version includes partial MFCi mplementation on Motif   y              
XVT  well established, cross-platform framework   y y y y y y  y  
zAPP  well established, cross-platform framework.No longer available.   ? ? ? ? ?      
Zinc well established, cross-platform framework. supports24 platforms (including MS DOS and Unix text mode)freely available for  non-embedded use   y y y y y      

Java Oriented


  • WinForm, the standard C# GUI class library/framework.


  • CLAW,Ada framework  for Windows 95/NT
  • ObjectAda, Ada compiler/development environment, including GUI bindings for Windows,X/Motif


  • Winteractera modern GUI toolset for the Fortran 90/95 programming language, for Windows and Linux

Pascal (including Delphi)

  • VCL(Visual Component Library), the GUI foundation for Inprise/Borland'spopular RAD tool Delphi, forWin 3.1/95/98/NT, "object-oriented component framework delivers the only truecomponent architecture with over 200 visual and non-visual components thatare completely reusable and extendable"
  • CLX, Cross-platform library for Delphi , Kylix and CBuilder - Based on top of Qt, works on Win32 and GNU.Linux (x86)


  • SancsGUI, for Compaq Visual Fortran, An object-oriented modeling and simulation environment for developing and deploying scientific and engineering applications without writing any GUI code. For 32-bit Windows.


  • XPCE, GUI system for Prolog, Lisp and C++.
  • MetaCard, a Hypercard-typescript language with integrated GUI library, for Unix/X11 and MS Win 3.1/95/NT.
to top

Related Links

Other GUI Toolkit Pages

X Windows/Motif

Alternative Windowing Systems

  • Fresco (Berlin), an attempt to provide an alternative to X Windows.Also listed as a free GUI toolkit
  • MiniGUI, small windowing system for embedded applications
  • Microwindows (NanoGUI), small windowing system for embedded applications, for DOS, MS Windows, Unix, Linux SVGAlib, Linux kernel framebuffer (MPLed/GPLed)
  • DirectFB,  a thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows and multiple display layers on top of the Linux Framebuffer Device. (LGPLed)
  • PicoGUI
  • Y Widnow System

Papers on GUI

Drag and Drop protocols

Commercial Java Systems

Organizations for Free Software

Important Free Software Projects

Free Object-oriented Componet Software Framework
Free Java Systems/Compilers
  • JDK(Java Development Kit), from Sun / Javasoft.( Linux version )(SGI version)
  • Kaffe , a Java virtual machine from TransVirtual ,and just-in-time compiler, works on most Unix's, MS Win 95, NextStep and Amiga (GPLed).
  • Japhar , a free JVM from the Hungry Programmers ,the offical GNU Java VM (LGPLed).
  • Guavac, a GPLed Java source-to-bytecode compiler written in C++.
  • Jikes, a Java source-to-bytecode compiler, faster Javac replacement
  • Jump, a Java source-to-bytecode compiler with non-standard Java language extension,10 to 30 times faster than Javac
  • j2c, a Java class file-to-C translator
  • Toba, a Java class file-to-C translator, for standalone applications (not applets).
  • gcj, the GNU Java compiler 
Free C# Systems/Compilers
  • Mono, an effort to create an Open Source implementation of the .NET Development Framework. Includes: a compiler for the C# language, a runtime for the Common Language Infrastructure and a set of class libraries  (GPLed plus exceptions for linking)
  • DotGNU, including Portable.NET, an effort to create an alternative to Microsoft .NET, including C# compiler and run-time libraries. (GPLed plus exceptions for linking)
Library Binding Generation Tool
  • SWIG (Simplified Warpper and Interface Generator), "a program development tooldesigned to make it easy to build scripting language interfaces to C/C++ programs."

GUI Toolkit Implementation Utility Libraries

  • libsigc++,"a library implements a full callback system for use in widget libraries,abstract  interfaces, and general programming."  (LGPLed)
Graphical Desktop Environments
  • CDE, Common Desktop Environment, the commercially standard Unix desktop
  • KDE , the K(ool) Desktop Environment, based on Qt.
  • GNOME, GNU Network Object Model Environment, based on gtk .
  • XFCE , a lightweight desktopenvironment for various UNIX systems, based on gtk
  • GNUStep , the free softwareimplementation of the OpenStep desktop environment
  • FLEK, an application framework "environment" based on Fltk
  • Equinox Desktop Environment, based on Fltk
  • Mesa, a 3D graphics library providing an Open GL API, licensed under BSD (X11)-style license and now part of XFree86
  • GLUT,the OpenGL Utility Toolkit, a window system independent toolkit for writingOpenGL programs
  • vtk , The VisualizationToolkit (C++ API) ( license)
  • GIMP , the GNU Image Manipulation Program, a Photoshop-style painting program, licensedunder GPL.
  • FilmGIMP, a fork of GIMP for movie editing.
  • ImageMagick, a set of powerful image manipulation/processing programs. Functions availableto other programs via a rich API.(BSD-stylelicense)
  • libart (alt site)GNOME/RaphLevien's advanced 2D graphics library (LGPLed)
  • Zodius, a C++, easy-to-use 2D graphics library (BSD-style license)
  • Cario, a LGPLed/MPLed  "vector graphics library designed to provide high-quality display and print output. Currently available output targets include the X Window System, OpenGL (via [WWW]glitz), Quartz, win32, in-memory image buffers, PNG images, PostScript, and PDF files. Some of these backends are still experimental. Cairo is designed to produce identical output on all output media while taking advantage of display hardware acceleration when available (eg. through the X Render Extension or OpenGL)." Possibly the standard 2D graphic API on free OSes.

Companies developing/supporting FreeSoftware

Other Free Software websites

to top 

If you think anything is incorrect orwant to provide more information for inclusion in this page, please contact(via e-mail)

Andy Tai


© Copyright 1997-2003, 2005, 2007 AD ( ROC Years 86-92, 94, 96), by Li-Cheng (Andy) Tai, All rights reserved. 

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

All trademarks are the property of their respective owners.

page created Apr 19, 1997 (86)

    有几个小伙伴看完啦? 看完的老板会多发年终奖哟^_^ 
    其中C#的库是最少的,只有Mono和DotGNU两个,而其中的Mono就是逆天了的跨平台C#库啦,很多人感慨如果C#这么方便的语言可以在linux上用就爽歪歪啦,这不,Mono不仅可以在linux PC机上运行,还可以在Android上运行,谁说微软不跨平台了!
    Alberl之前只是听说.NET拖拖控件就可以做出很漂亮的界面,结果发现连直线、圆形都可以直接拖上去,没想到有这么方便! 在向8年.NET经验的同事请教了之后,发现.NET简直完爆VC++的那一系列界面(如MFC、WTL),MFC要好多个步骤才能搞定布局、自适应窗口大小、改变背景色、控件透明等等,但是在.NET上都是动动鼠标、右键完事。哎,说真的,搞得Alberl当时都惊呆了!!! 
    如果只是开发普通样式的界面,真的不用考虑MFC了! 不过话说回来,如果要开发出QQ、金山那样的界面,.NET也是需要做很多事情的,虽然只要花时间就可以完成(而MFC是花时间也不一定能完成的,还需要有比较高的水平),但如果VC++用上开源界面库的话,就比.NET要爽很多啦~
    小伙伴们会发现有很多SDL字样,那么SDL是何物呢? 还记得第一篇教程吗? 那个ffmpeg播放视频就是用的SDL。 SDL在多媒体和游戏领域可是非常出名的哦。VLC的播放也可以用SDL哦~
    可以看到,C#和Java的界面库很少,而C++的多到看不完,难道是C++很强大? 错,同一类型的开源库越多,就说明这个方向越弱。而C#和Java的界面库之所以这么少,是因为他们的界面库已经能满足目前绝大部分需求了,无需其他界面库了。而C++却一直没有一个好点的界面库,所以总是有大牛觉得其他界面库不好用,于是就有了各种各样的界面库,并且十多年过去了,还没有定论,哪一种界面库都没能一统天下。
    其实呢,这些界面库在国外应该是够用啦,看看国外那些杀毒软件,在国内比起来简直是土鳖界面,但在国外却是比较好看的界面。像MSN、GTalk、Skype,界面也是一般般啦,用用MFC、自绘控件、商业库(BCG、XTP),也是很容易做出来的。不过MSN是DirectUI,国内火爆的炒作DirectUI也提到了MSN,其实微软技术这么牛,平台都是自己做的,技术根本就不是问题啦,所以微软的某个东西用的什么技术成功了,不代表我们就能成功,我们能和微软去比么...  那说说GTalk、Skype吧,不过Alberl没安装过着两款应用,所以无从说起,还请网友们提供测评信息~O(∩_∩)O~ 
    那再说说火狐系列吧,从火狐浏览器、Thunderbird等一系列火狐产品,都是用的自主开发的XUL,并且效果都不错! 那我们也去用XUL? 不过Alberl也不知道有没有其他公司用XUL,还请网友们提供信息。并且XUL是人家自己开发的,有问题了随时可以解决。咱们要是出了问题,找谁解决,去哪找资料?
    看来windows下的界面库还真是windows一统天下了,还真得靠win32提供的消息机制了。不过好消息还是有的,即使要靠win32平台,也有很多不错的界面库。并且还有更多的不靠win32平台的开源库。由于本节只是介绍C++ Native界面库,所以Web界面库以及依赖win32的界面库将在下一个教程中介绍~O(∩_∩)O~


如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19664 0
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24769 0
Chromium OS 开源项目
基于chrom浏览器的开源开发 http://www.chromium.org/chromium-os
920 0
Chaos是一个基于Linux平台, reactor模式的网络事件库, 目前仅支持TCP传输协议, 仅在x86_64下编译, 并遵循3-clause BSD开源协议. 在使用上, 可以说它很像boost asio, 可能是由于我对boost asio的接口设计很有爱吧, 而且对于boost asio...
972 0
原文 http://www.cnblogs.com/jirigala/archive/2013/06/04/3116397.html 一、AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架。
1843 0
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17967 0
c++ 开源日志库选择
liblogger 待选为 glog、log4cplus、log4cpp、log4cxx 目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。
1576 0
Google的C++开源代码项目 v8  -  V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎。V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。
1925 0
OceanBase 入门到实战教程