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>