C++ 100款開源界面庫 (10)

(聲明: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~
    下面請看正文(格式支持很差,推薦看原文。可能不多小夥伴會看完,不過最後面有Alberl的分析哦~):
 
 
 
 
 
 


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  
http://www.atai.org/guitool/

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

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/
XP/Vista
MS Win 3.1 OS/2 PM MacOS NextStepOpenStep 
MacOS X
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
               
aedGUI
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)
Agar
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
Amulet 
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 
     Gtk--.
LGPL
y
               
Berlin
Fresco
 (new)
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
LGPL 
                 
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(?)  
CroPL
a C++ application framework and utility library for single-source Mac/Windows applications
non-profit use only
 
 
y
y
 
 
y
y
 
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
               
GuiToolkit
"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
 
 
y
y
 
 
 
 
 
Harmony
attempts to create a Qt clone witha true Free Software license.  Development is halted. 
LGPL
unfinished
               
Hv
C API.
?
 
y
             
Interviews 
ivtools
  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
               
libgx
a lightweight, non-intrusive, public-domain C++ widget library for writing X11 applications public domain
y
               
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(?) 
Art(?)
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/
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
               
MacZoop
C++ API. Framework on top of Carbon API.
MacZoop license
            y
y
 
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
(Motif) 
OpenMotif
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 
LGPL
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)
   
PicoGUI 
"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
   
Taronja
information in Spanish... no English info available.
BSD
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
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)
 
 
 
y
 
TWIN/The 
   Willows 
   Toolkit
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
             
VCF 
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
 
y

 
 
 
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
             
wGui

a simple, platform independent dialog manager library using

SDL 
LGPL (via SDL) (viaSDL) (via SDL) (via SDL) (viaSDL) (via SDL) (via SDL) (via SDL) (via SDL)
Whisper
"gener al 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/
XP/Vista
MS Win 3.1
OS/2 PM
MacOS
NextStepOpenStep
MacOS X
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 topphp

Java oriented

Ada

  • 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)

BASIC

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

LISP

Tcl

  • 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

Pascal

Modula 2

Perl

Python

Javascript

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

Scheme (including Guile)

Oberon

Smalltalk

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

Prolog

S-Lang

Pike

Lua

Others

  • 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/
XP/Vista
MS Win 3.1
OS/2 PM
MacOS
NextSTEPOpenSTEP
MacOS X
Amiga
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
  y
y
         
ClassAct
 
 
 
 
 
 
 
 
 
y
CPLAT
a C++ framework for Mac and Windows
 
y
y
y(?)
 
y
 
 
CroPL
a C++ application framework and utility library for single-source Mac/Windows applications
 
 
y
y
 
 
y
y
 
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
 
   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 
applications 
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

C#

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

Ada

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

Fortran

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

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)

Fortran

  • 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.

Misc

  • 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

  • Vibe, a complete Java deployment system including tools fromcompiler to custom virtual machine. ( company out of business)

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
Others
  • 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 Taihtml

Copyright 

© 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.java

page created Apr 19, 1997 (86)python

 
 
 
 
 
 
      有幾個小夥伴看完啦? 看完的老闆會多發年終獎喲^_^ 
    因爲這裏不只介紹了C++,還介紹了其餘語言,那咱們就挑少的先講吧。
 
1、C#
    其中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要爽不少啦~
 
2、Python、Lua、Perl
    這幾個腳本語言也有人去折騰界面,其中wxPython還被標記成【good】,可見也是作得很不錯的。
 
3、Java
    Java的界面庫也有十多款,其中SWT被標記成【good】,介紹說是標準的工具,Eclipse的一部分。(Alberl對GWT比較眼熟,多是記錯了)
 
4、SDL
    小夥伴們會發現有不少SDL字樣,那麼SDL是何物呢? 還記得第一篇教程嗎? 那個ffmpeg播放視頻就是用的SDL。 SDL在多媒體和遊戲領域但是很是出名的哦。VLC的播放也能夠用SDL哦~
 
5、C++
    能夠看到,C#和Java的界面庫不多,而C++的多到看不完,難道是C++很強大? 錯,同一類型的 開源庫越多,就說明這個方向越弱。而C#和Java的界面庫之因此這麼少,是由於他們的界面庫已經能知足目前絕大部分需求了,無需其餘界面庫了。而C++卻一直沒有一個好點的界面庫,因此老是有大牛以爲其餘界面庫很差用,因而就有了各類各樣的界面庫,而且十多年過去了,尚未定論,哪種界面庫都沒能一統天下。
    不過C++的界面庫是分linux和Windows的,兩個平臺的形勢大不同。
linux
    linux下面就簡單多了,因爲其應用大部分都沒有界面的,有界面的要求也不是很高,因此現有的開源庫已經可以知足需求了,而在上述這麼多開源庫中,只有 QT被標記爲【Best】,可見QT是很是被承認的。而linux下就以QT最爲權威了,而WxWidgets、GTK、GTK+、Fltk也比較著名,linux嵌入式下miniGUI最爲著名(終於看到中國人的開源項目被世界承認了^_^),其餘的不少界面庫就不提了,總之,linux下面,有這些界面庫已經夠用了。
windows商業庫
    那麼windows下的形勢就徹底不一樣啦,不只開源庫不少,並且商業庫也不少,其中不只有大公司的商業庫,也有不少小公司的商業庫,競爭很是激烈,不過微軟是其中的巨頭!上述列表中提到的OWL、VCL、CLX都是Delphi裏面的,Delphi已經被淘汰了。而MFC被列在第一位,其餘商業庫基本沒據說過,可見MFC是惟一的知名商業庫,已經戰勝了其餘商業庫一統天下了。
    而其中並無列出win32,能夠說把win32和MFC混爲一談也沒什麼不能夠。既然混爲一談的話,那麼也就是說這些東西都是創建在win32的基礎上,那麼剛剛說的小公司的商業庫就不能說是界面庫的競爭者了,而Alberl說的這些小公司指的是國內所謂DirectUI的公司,從上述列表來看,都是以平臺來作比較的,而那些DirectUI公司都沒有本身的平臺,都是創建在win32的基礎上,因此根本都沒資格排到這裏來。因此這些DirectUI公司,其實能夠和BCG、XTP這些公司併爲一列,那就是說他們不是平臺,而是創建在win32這個平臺上的一堆庫而已。
    BCG、XTP都稱本身是控件庫公司,創建在win32或者MFC之上;而天朝公司一貫喜歡故弄玄虛,炒做概念,號稱是一個界面平臺,搞得好像他們有本身的平臺同樣,其實他們仍是創建在win32的平臺上,仍是要靠微軟,仍是windows編程。而所謂的適用於多種編程語言,並非他們的庫有多麼NB,由於只要是標準的dll,就能夠被任何支持dll的語言調用,但在他們的宣傳中,讓人感受就是:好像dll自己不能被多種語言調用同樣,好像是被他們改進以後纔有這個功能同樣o(╯□╰)o。
    好吧,商業公司中固然是BCG、XTP最爲著名啦,他們都是創建在win32或者MFC之上,做爲一個輔助而已。
windows開源庫
    雖然上面列舉了 上百款開源庫,而且不少都是 跨平臺的,但除了QT在windows上闖出了名氣之外,其餘幾個仍是隻能在linux稱王。不得不說微軟的產品線作的很是完善,否則早就被linux那一堆跨平臺打垮了。也不得不說windows的佔有率很是之高,致使不少公司只作windows平臺,壓根不需考慮linux,因此那些所謂的跨平臺對不少公司真的是一點吸引力都沒有!(智能手機大量流行以後除外,也就是2011年以後)
    其實呢,這些界面庫在國外應該是夠用啦,看看國外那些殺毒軟件,在國內比起來簡直是土鱉界面,但在國外倒是比較好看的界面。像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~
    須要提醒的是,Alberl並無一一去對比上面列舉的上百款界面庫,只是挑了一些著名的庫作介紹,而且介紹也 都是道聽途說的,沒有親自驗證,還請各位網友對Alberl的介紹持懷疑態度,若是有哪位網友對其中的界面庫有過深刻的瞭解, 但願能提供一些信息。
    最後感嘆一下:哎,怎麼老外動不動就本身開發框架呀,怎麼我們動不動就處處找別人的框架呀o(╯□╰)o
 
相關文章
相關標籤/搜索