GTK+
Материал из Википедии — свободной энциклопедии
| GTK+ | |
| Тип | Библиотека элементов интерфейса (виджетов) |
| Написана на | C |
| ОС | Кроссплатформенное программное обеспечение |
| Версия | 2.16.1[1] — 12 апреля 2009 |
| Лицензия | GNU LGPL |
| Сайт | gtk.org |
GTK+ (сокращение от GIMP Toolkit) — один из двух наиболее популярных на сегодняшний день наборов элементов интерфейса для X Window System, которая является его основной, но не единственной целевой платформой. Будучи изначально частью графического редактора GIMP, он «отпочковался» в отдельный проект и приобрёл заметную популярность. GTK+ — свободное ПО, распространяемое на условиях GNU LGPL, и является частью проекта GNU.[1][2]
Содержание |
[править] Архитектура
GTK+ написан на языке Си, но тем не менее, является объектно-ориентированным. Одной из причин для выбора Си в качестве языка было желание легко строить интерфейсы для других языков программирования. В результате под GTK+ можно программировать не только на «родном» Си, но и на C++, Perl, Python, Java, PHP, Ruby, Lisp и других языках.
Собственно GTK+ состоит из двух компонентов: GTK и GDK. Первый содержит набор элементов пользовательского интерфейса, или «виджетов» (таких, как кнопка, список, поле для ввода текста и т. п.) для различных задач. GDK отвечает за вывод на экран и может использовать для этого X Window System, Linux Framebuffer, WinAPI или функции Mac OS X. Начиная с версии 2.8, GDK во многом (но не полностью) заменена на систему отрисовки векторной графики Cairo.
Помимо Cairo, GTK+ зависит от трёх библиотек — GLib, Pango и ATK (англ.), — которые разрабатываются вместе с GTK+, но могут использоваться и отдельно.[2][1]
[править] Внешний вид
Внешний вид графических интерфейсов, созданных с использованием GTK+, может конфигурироваться пользователем и/или программистом. При этом настраиваются не только цвета и шрифты, но и способ отображения различных элементов. Достигается это за счёт использования «движков» для вывода на экран. Путём подключения другого движка можно кардинальным образом менять внешний вид программ. Например, некоторые движки могут использовать псевдо-трёхмерный вид, другие — более «плоский» и т. п.
[править] Использование
На основе GTK+ построены рабочие окружения GNOME, LXDE и Xfce. Рабочее окружение GNOME является «основным» пользователем библиотеки, поэтому политика дизайнерских решений для GNOME и GTK+ обычно совпадает. Тем не менее, программы, использующие GTK+ не обязаны быть GNOME-программами и могут выполняться в других окружениях, например в Xfce и KDE. Кроме того, GTK+ может работать и на операционных системах семейства Microsoft Windows, Windows NT и Mac OS X.
[править] GTK+ 3.0
Разработка следующей версии GTK+ началась в феврале 2009 на мероприятии «GTK+ Theming Hackfest», проходившем в Дублине [3]. Первый набросок плана разработки был опубликован 9 апреля 2009 [4].
[править] Пример программы
Простая программа «Здравствуй, мир!» на GTK+ в Linux
/* Подключаем библиотеку GTK+ */ #include <gtk/gtk.h> int main( int argc, char *argv[]) { /* Объявляем виджеты */ GtkWidget *label; // Метка GtkWidget *window; // Главное окно GtkWidget *frame; // Рамка внутри главного окна /* Инициализируем GTK+ */ gtk_init(&argc, &argv); /* Создаем виджет GtkWindow тип его устанавливаем GTK_WINDOW_TOPLEVEL */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); /* Устанавливаем заголовок "Здравствуй, мир!" */ gtk_window_set_title(GTK_WINDOW(window), "Здравствуй, мир!"); /* Задаем размер рабочей области окна 230х150 пикселей */ gtk_window_resize(GTK_WINDOW(window), 230, 150); /* Выравниваем окно по центру */ gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); /* Создаем метку с текстом "Здравствуй, мир!" */ label = gtk_label_new("Здравствуй, мир!"); /* Создаём рамку */ frame = gtk_fixed_new(); /* Устанавливаем расположение метки в рамке */ gtk_fixed_put(GTK_FIXED(frame), label, 50, 50); /* Вставляем рамку в главное окно */ gtk_container_add(GTK_CONTAINER(window), frame); /* Показываем окно вместе с виджетами */ gtk_widget_show_all(window); /* Соединяем сигнал завершения с выходом из программы */ g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); /* Приложение переходит в вечный цикл ожидания действий пользователя */ gtk_main(); return 0; }
Чтобы скомпилировать пример, нужно выполнить команду:
gcc `pkg-config --cflags --libs gtk+-2.0` file_name.c
[править] Примечания
- ↑ 1 2 3 Заглавная страница официального сайта (англ.). Проверено 25 октября 2008.
- ↑ 1 2 GTK+ FAQ (англ.). Проверено 25 октбяря 2008.
- ↑ Анонс «GTK+ Theming Hackfest»
- ↑ План работ Gtk+ 3.0
[править] См. также
[править] Интерфейсы для других языков программирования
- gtkmm (C++)
- PyGTK (Python)
- Gtk2-perl (Perl)
- PHP-GTK (PHP)
- Полный список интерфейсов, включая и «неофициальные»
[править] Ссылки
| Портал «Свободное программное обеспечение» | |
| GTK+ на Викискладе? |
- GTK+ — The GIMP Toolkit (англ.) — официальный сайт GTK+.
- GTK+ — Download for Windows (англ.) — официальный сайт GTK+ для OC Windows.
- Основы GTK+ — учебник по GTK+ 2.0 на русском языке.
- GTK+ 2.0 Tutorial (англ.) — официальный учебник по GTK+ 2.0.
- GTK+ 2.0 Tutorial (рус.) — официальный учебник по GTK+ 2.0.
- GTK+ 2.0 и GTK+ 2.10 — документация на русском языке
- «GTK+ для начинающих» (рус.) — Практические советы начинающим разработчикам приложений на GTK+.
- «Основы GTK+» — устаревшая информация о разработке на GTK+: инициализация, виджеты, сигналы.
|
|
||
|---|---|---|
| Сообщество | ||
| Приложения |
Baobab • Brasero • Cheese • Ekiga • Empathy • Epiphany • Evince • Evolution • Eye of GNOME • Dasher • File Roller • gedit • GNOME Display Manager • GNOME Terminal • Metacity • Nautilus • Панель GNOME • Rhythmbox • Sound Juicer • Screenshot • Tomboy • Totem • Alacarte • Yelp • прочие… |
|
| Технологии | ||

