GUI开发工具包 GTK+ 介绍
jopen
13年前
<div id="p_fullcontent" class="detail"> <h1><img title="GTK+ logo" alt="GUI开发工具包 GTK+ 介绍" src="https://simg.open-open.com/show/40c275affef1ecb4ae01e166d523c4d3.png" width="90" height="90" /></h1> <p><strong>GTK</strong>(GIMP Toolkit)是一套跨多种平台的图形工具包,按LGPL许可协议发布的。虽然最初是为GIMP写的,但目前已发展为一个功能强大、设计灵活的一个通用 图形库。特别是被GNOME选中使得GTK+广为流传,成为Linux下开发图形界面的应用程序的主流开发工具之一,当然GTK+并不要求必须在 Linux上,事实上,目前GTK+已经有了成功的windows版本。</p> <p>GTK虽然是用C语言写的,但是您可以使用你熟悉的语言了使用GTK,因为GTK+已经被绑定到几乎所有流行的语言上,如:C++, Guile, Perl, Python, TOM, Ada95, Objective C, Free Pascal, and Eiffel。<br /> </p> <h3>它具有以下特性:</h3> <p></p> <div class="bubbles left"> <div id="Stability" class="bubble"> <h2><a name="Stability">Stability</a></h2> <p>GTK+ has been developed for over a decade to be able to deliver the enticing features and superb performance that it brings to your application development. GTK+ is supported by a large community of developers and has core maintainers from companies such as <a class="external" href="/misc/goto?guid=4958188977341839153">Red Hat</a>, <a class="external" href="/misc/goto?guid=4958194279496934114">Novell</a>, <a class="external" href="/misc/goto?guid=4958194280243076775">Lanedo</a>, <a class="external" href="/misc/goto?guid=4958194280983058627">Codethink</a>, <a class="external" href="/misc/goto?guid=4958194281709703907">Openismus</a> and <a class="external" href="/misc/goto?guid=4958194282447535270">Intel</a>.</p> </div> <div id="LanguageBindings" class="bubble"> <h2><a name="LanguageBindings">Language Bindings</a></h2> <p>GTK+ is available in many other programming languages thanks to the <a href="/misc/goto?guid=4958194283190561772">language bindings</a> available. This makes GTK+ quite an attractive toolkit for application development.</p> </div> <div id="Interfaces" class="bubble"> <h2><a name="Interfaces">Interfaces</a></h2> <p>GTK+ has a comprehensive collection of core widgets and interfaces for use in your application.</p> <div class="figure"> <a class="image" href="https://simg.open-open.com/show/7cc4fd59e1bde8f34685d34deaeafb70.png"><img alt="The Widget Factory" src="https://simg.open-open.com/show/548e19802d75d92a06287835d7240d7e.png" /></a> </div> <ul> <li>Windows (normal window or dialog, about and assistant dialogs)</li> <li>Displays (label, image, progress bar, status bar)</li> <li>Buttons and toggles (check buttons, radio buttons, toggle buttons and link buttons)</li> <li>Numerical (horizontal or vertical scales and spin buttons) and text data entry (with or without completion)</li> <li>Multi-line text editor</li> <li>Tree, list and icon grid viewer (with customizable renderers and model/view separation)</li> <li>Combo box (with or without an entry)</li> <li>Menus (with images, radio buttons and check items)</li> <li>Toolbars (with radio buttons, toggle buttons and menu buttons)</li> <li>GtkBuilder (creates your user interface from XML)</li> <li>Selectors (color selection, file chooser, font selection)</li> <li>Layouts (tabulated widget, table widget, expander widget, frames, separators and more)</li> <li>Status icon (notification area on Linux, tray icon on Windows)</li> <li>Printing widgets</li> <li>Recently used documents (menu, dialog and manager)</li> </ul> </div> </div> <div class="bubbles right"> <div id="CrossPlatform" class="bubble"> <h2><a name="CrossPlatform">Cross Platform</a></h2> <p>Originally GTK+ was developed for the X Window System but it has grown over the years to include backend support for other well known windowing systems. Today you can use GTK+ on:</p> <ul class="platform_list"> <li class="linux"><a href="/misc/goto?guid=4958188588440218957">GNU/Linux and Unix</a></li> <li class="windows"><a href="/misc/goto?guid=4958188589340481672">Windows (32-bit)</a> and <a href="/misc/goto?guid=4958188590088025688">64-bit</a></li> <li class="macos"><a href="/misc/goto?guid=4958188590826218911">Mac OS X</a></li> </ul> </div> <div id="Accommodating" class="bubble"> <h2><a name="Accommodating">Accommodating</a></h2> <p>GTK+ caters for a number features that today's developers are looking for in a toolkit including:</p> <ul> <li>Native look and feel</li> <li>Theme support</li> <li>Thread safety</li> <li>Object oriented approach</li> <li>Internationalization</li> <li>Localization</li> <li>Accessibility</li> <li>Bidirectional text support (LTR/RTL, Left To Right/Right To Left)</li> <li>UTF8 support</li> <li>Documentation</li> </ul> </div> <div id="Foundations" class="bubble"> <h2><a name="Foundations">Foundations</a></h2> <p>GTK+ is built on top of GLib. GLib provides the fundamental algorithmic language constructs commonly duplicated in applications. This library has features such as: (this list is not a comprehensive list)</p> <ul> <li>Object and type system</li> <li>Main loop</li> <li>Dynamic loading of modules (i.e. plug-ins)</li> <li>Thread support</li> <li>Timer support</li> <li>Memory allocator</li> <li>Threaded Queues (synchronous and asynchronous)</li> <li>Lists (singly linked, doubly linked, double ended)</li> <li>Hash tables</li> <li>Arrays</li> <li>Trees (N-ary and binary balanced)</li> <li>String utilities and charset handling</li> <li>Lexical scanner and XML parser</li> <li>Base64 (encoding & decoding)</li> </ul> </div> <div id="Mobile" class="bubble"> <h2><a name="Mobile">Mobile</a></h2> <p>The GMAE (<a class="external" href="/misc/goto?guid=4958194286625394939">GNOME Mobile & Embedded</a>) initiative has advanced the use, development and commercialization of GNOME components as a mobile and embedded user experience platform. It has brought together industry leaders, expert consultants, key developers and the community and industry organizations they represent. As a direct result of this, GTK+ has features pertaining to mobile and embedded platform requirements.</p> <p>GTK+ has been involved in a number of embedded initiatives over the past few years including the development of:</p> <ul> <li>Nokia <a class="external" href="/misc/goto?guid=4958194287367796617">770</a> / <a class="external" href="/misc/goto?guid=4958194288102229713">N800</a> / <a class="external" href="/misc/goto?guid=4958194288838930145">N810</a> / <a class="external" href="/misc/goto?guid=4958194289568550559">N900</a></li> <li><a class="external" href="/misc/goto?guid=4958194290310603450">One Laptop Per Child Project</a></li> <li><a class="external" href="/misc/goto?guid=4958194291043853100">OpenMoko</a></li> </ul> </div> </div> <p> </p> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1322527348703" target="_blank">http://www.open-open.com/lib/view/home/1322527348703</a></p> </div>