Лучшие вопросы
Таймлайн
Чат
Перспективы
GTK
кроссплатформенная библиотека элементов интерфейса (фреймворк) Из Википедии, свободной энциклопедии
Remove ads
GTK (ранее GTK+[8]; сокращение от GIMP ToolKit) — кроссплатформенная библиотека элементов интерфейса (фреймворк), имеет простой в использовании API, наряду с Qt является одной из двух наиболее популярных на сегодняшний день библиотек для Wayland и X Window System.
Будучи изначально частью графического редактора GIMP, она развилась в отдельный проект и приобрела заметную популярность. GTK — свободное ПО, распространяемое на условиях GNU LGPL, позволяющей создавать как свободное, так и проприетарное программное обеспечение с использованием библиотеки. GTK является официальной библиотекой для создания графического интерфейса проекта GNU.[9]
Remove ads
История
Remove ads
Архитектура
Суммиров вкратце
Перспектива
GTK+ написана на языке Си, но тем не менее, является объектно-ориентированной[14]. Одной из причин для выбора Си в качестве языка было желание легко строить интерфейсы для других языков программирования. В результате под GTK+ можно писать на следующих языках программирования:

Собственно GTK+ состоит из двух компонентов: GTK и GDK. Первый содержит набор элементов пользовательского интерфейса, или «виджетов» (таких, как кнопка, список, поле для ввода текста и т. п.) для различных задач. GDK отвечает за вывод на экран и может использовать для этого X Window System, Wayland, Linux Framebuffer, WinAPI или функции Mac OS X. Начиная с версии 2.8, GDK во многом (но не полностью) заменена на систему отрисовки векторной графики Cairo.
Помимо Cairo, GTK+ зависит от трёх библиотек — GLib, Pango и ATK, — которые разрабатываются вместе с GTK+, но могут использоваться и отдельно.[9]
Remove ads
Внешний вид
Внешний вид графических интерфейсов, созданных с использованием GTK+, может конфигурироваться пользователем и/или программистом. При этом настраиваются не только цвета и шрифты, но и способ отображения различных элементов. Достигается это за счёт использования «движков» для вывода на экран. Путём подключения другого движка можно кардинальным образом менять внешний вид программ. Например, некоторые движки могут использовать псевдотрёхмерный вид, другие — более «плоский» и т. п.
Использование
Суммиров вкратце
Перспектива
На основе GTK+ построены рабочие окружения GNOME и Xfce. Программы, использующие GTK+, могут выполняться в других окружениях, например в KDE и LXQt. Кроме того, GTK+ может работать и на операционных системах семейств Microsoft Windows и Mac OS X.
Также GTK+ выбран в качестве основной библиотеки построения пользовательских интерфейсов для Mono (порта Microsoft.NET для Linux).[16]
Ниже предоставлен неполный (так как GTK слишком популярен) список проектов с использованием GTK:
Рабочие окружения, которые используют GTK+
- GNOME — полностью построено на GTK+
- Cinnamon — форк GNOME 3, использующий GTK+
- MATE Desktop (форк GNOME 2) — полностью построено на GTK+
- Xfce — построено на GTK+, но, в сравнении с GNOME, программы Xfce имеют меньше зависимостей
- LXDE (Lightweight X11 Desktop Environment) — поддерживает только темы и программы GTK, сам строится на Qt
- ROX Desktop
- GPE Palmtop Environment
- Access Linux Platform
- Sugar — обучающая платформа, которая построена на GTK+ с использованием PyGTK
- KDE, хотя использует Qt, имеет поддержку программ и тем GTK+ (с версии 4.2).
Оконные менеджеры, использующие GTK+
Приложения, использующие GTK+
- AbiWord — текстовый редактор
- Anjuta — официальная интегрированная среда разработки GNOME
- Chromium — веб-браузер, разрабатываемый в основном компанией Google и использующий WebKit
- Ekiga — приложения для VoIP и видео-конференций
- Epiphany — веб-браузер среды GNOME.
- Evolution — программа для управления контактами и электронной почтой
- Firefox — стандартный браузер большинства Gnome-редакций дистрибутивов Linux
- GIMP — растровый графический редактор
- HandBrake — программа для конвертирования видео
- Inkscape — векторный графический редактор
- Midori — легковесный веб-браузер
- MonoDevelop — открытая интегрированная среда разработки
- Pidgin — клиент обмена мгновенными сообщениями
- Wireshark — анализатор сетевых пакетов
- SciTE — кроссплатформенный текстовый редактор
Remove ads
GTK+ 3.0
В GTK версии 3.0.0 пересмотрена обработка устройств ввода, включена поддержка для тем, написанных с CSS-подобным синтаксисом, а также появилась возможность получать информацию от других открытых GTK приложений.
Разработка следующей версии GTK+ началась в феврале 2009 на мероприятии «GTK+ Theming Hackfest», проходившем в Дублине[17]. Первый набросок плана разработки был опубликован 9 апреля 2009[18].
10 февраля 2011 года состоялся релиз GTK+ 3.0.0.
Remove ads
Пример программы
Суммиров вкратце
Перспектива
Простая программа «Здравствуй, мир!» на GTK+ в Linux
/* Подключаем библиотеку GTK+ */
# include <gtk/gtk.h>
int main( int argc, char *argv[])
{
/* Объявляем виджеты */
GtkWidget *label; // Метка
GtkWidget *window; // Главное окно
/* Инициализируем GTK+ */
gtk_init(&argc, &argv);
/* Создаем главное окно */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
/* Устанавливаем заголовок окна "Здравствуй, мир!" */
gtk_window_set_title(GTK_WINDOW(window), "Здравствуй, мир!");
/* Создаем метку с текстом "Здравствуй, мир!" */
label = gtk_label_new("Здравствуй, мир!");
/* Вставляем метку в главное окно */
gtk_container_add(GTK_CONTAINER(window), label);
/* Показываем окно вместе с виджетами */
gtk_widget_show_all(window);
/* Соединяем сигнал завершения с выходом из программы */
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
/* Приложение переходит в вечный цикл ожидания действий пользователя */
gtk_main();
return 0;
}
Чтобы скомпилировать пример, нужно выполнить команду:
gcc file_name.c -o file_name `pkg-config --cflags --libs gtk+-3.0`
В Windows скомпилировать пример при помощи MinGW можно следующей командой:
i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR=yes PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config --cflags --libs gtk+-3.0`
Remove ads
См. также
Интерфейсы для других языков программирования
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads