GTK+
Матеріал з Вікіпедії — вільної енциклопедії.
| GTK+ | |
|---|---|
| Тип: | Widget toolkit |
| Розробник: | GNOME Foundation |
| Стабільний випуск: | 2.14.3 (24 вересня 2008) |
| Мова програмування: | C |
| ОС: | Крос-платформенна |
| Ліцензія: | GNU Lesser General Public License |
| Сайт: | www.gtk.org |
GTK+, або The GIMP Toolkit — крос-платформенний набір віджетів для створення графічних інтерфейсів користувача. Разом із Qt та Motif є одним із найпопулярніших інструментів для X Window System
GTK+ було розроблено для GNU Image Manipulation Program (GIMP), растрового графічного редактора, у 1997 році Спенсером Кімбалом (Spencer Kimball) та Петером Матісом (Peter Mattis), членами eXperimental Computing Facility (XCF) в UC Berkeley. Розповсюджується на умовах ліцензії LGPL, є вільним програмним забезпеченням і частиною проекту GNU.
Зміст |
[ред.] Мови програмування
GTK+ написана на мові програмування С, і використовує систему об'єктів GObject, що робить її об'єктно-орієнтованою. Платформа GNOME забезпечує біндінґи для наступних мов:
- C++ (gtkmm)
- Perl (Gtk2-perl)
- Ruby (ruby-gtk2)
- Python (PyGTK)
- Java (java-gnome) (не доступна Microsoft Windows)
- C# (Gtk#)
- PHP (PHP-GTK)
Іншими розробниками були написані біндінґи для багатьох інших мов програмування (Ada, D, Haskell, Ocaml, Pascal, Pike, Tcl, Euphoria та усіх мов .NET). GTK-server забезпечує GTK+ інтерфейсом міжпроцесорної взаємодії, що дозволяє використовувати його у будь якій мові програмування, котра підтримує механізм введення-виведення (I/O), включно із сценаріями shell. Повний перелік біндінґів можна знайти на веб-сторінці GTK+ - Language bindings.
На відміну від Qt, GTK+ не базується на інших Xt-подібних наборах віджетів. Це надає їй гнучкості і дозволяє використовувати GTK+ на інших системах. Однак, без цієї залежності, GTK+ немає доступу до бази ресурсів X Window System, традиційного способу налаштування програмного забезпечення X11.
[ред.] Зовнішній вигляд
Кінцевий користувач може налаштувати зовнішній вигляд графічних елементів за допомогою системи жупанів. Існують жупани, котрі імітують вигляд елементів графічних інтерфейсів таких операційних систем, як Windows 95, Motif, Qt, NEXTSTEP, та багатьох інших.
[ред.] Платформи
GTK+ спочатку призначалась для X Window System, і вони й по нині залишається її основною платформою. Іншими підтримуваними програмними платформами є Microsoft Windows (Windows 2000 та вище), DirectFB та Quartz (Mac OS X v10.4 та вище, нині знаходиться у стадії розробки).
[ред.] GTK+ 2
GTK+ 2 переважає своїми можливостями GTK+ 1. Серед нових можливостей вдосконалене відображення тексту за допомогою Pango, нова система жупанів, вдосконалена доступність за допомогою Accessibility Toolkit, повний перехід на Unicode використовуючи рядки UTF-8 та більш гнучке API. Між тим, GTK+ 2 втратила сумісність з GTK+ 1, і програмісти повинні переписати програмне забезпечення під нову версію бібліотеки.
Починаючи з версії 2.8, GTK+ 2 вимагає бібліотеку Cairo для відображення векторної графіки у GTK+ 2.
[ред.] Історія випусків
| Лінійка випусків | Остання Minor версія | Дата виходу | Основні зміни |
|---|---|---|---|
| 1.0.x | 1.0.? | ? | ? |
| 1.2.x | 1.2.10 | 2 квітня 2001 | ? |
| 2.0.x | 2.0.9 | 20 листопада 2002 | ? |
| 2.2.x | 2.2.4 | 4 вересня 2003 | ? |
| 2.4.x | 2.4.14 | 3 грудня 2004 | ? |
| 2.6.x | 2.6.10 | 18 серпня 2005 | ? |
| 2.8.x | 2.8.20 | 2 липня 2006 | Інтеграція Cairo |
| 2.10.x | 2.10.14 | 16 липня 2007 | GtkPrint - підтримка друку |
| 2.12.x | 2.12.11 | 12 березня 2008 | GtkBuilder - заміна libglade |
| 2.14.x | 2.14.3 | 24 вересня 2008 | Перелік новинок |
[ред.] Приклад "Привіт, світе!"
Класичний приклад програми "Привіт, світе" (англ. "Hello, world!") на мові С з використанням GTK+:
#include <config.h> #include <gtk/gtk.h> /* * Запускаємо головний цикл програми */ static void on_destroy (GtkWidget * widget, gpointer data) { gtk_main_quit (); } int main (int argc, char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init (&argc, &argv); /* створюємо головне вікно */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* задаємо границю для вікна розміром 20 пікселів */ gtk_container_set_border_width (GTK_CONTAINER (window), 20); /* задаємо вікну заголовок */ gtk_window_set_title (GTK_WINDOW (window), PACKAGE " " VERSION); /* задаємо розміри вікна */ gtk_window_set_default_size (GTK_WINDOW (window), 200, 50); /* Під'єднуємо подію "destroy" головного вікна до нашої функції on_destroy */ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (on_destroy), NULL); /* створюємо мітку "Привіт, світе!" */ label = gtk_label_new ("Hello, World"); /* і додаємо її до головного вікна */ gtk_container_add (GTK_CONTAINER (window), label); /* відобразити усі віджети */ gtk_widget_show_all (window); /* запускаємо головний цикл */ gtk_main (); return 0; }
[ред.] Майбутня розробка
Project Ridley має намір консолідувати розробку низки бібліотек, котрі є частиною GTK+, серед них: libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel та gtkglext.[1]
[ред.] Виноски
[ред.] Зовнішні посилання
| Вікіпідручник X Window Programming має сторінку на тему |
- Домашня сторінкаGTK+
- GTK+ Planet
- Foundations of GTK+ Development, книга для розробників
- Curses надбудова для GTK+
- GTK+ dev-cpp пакунок і runtime для Windows