GTK+
GTK+ | |
Файл:New Gtk+.svg | |
Тип | Библиотека элементов интерфейса (виджетов) |
Написана на | C |
ОС | Кроссплатформенное программное обеспечение |
Версия | 2.18.3 (17 октября 2009[1]) |
Лицензия | GNU LGPL |
Сайт | gtk.org |
GTK+ (сокращение от GIMP Toolkit) — один из двух наиболее популярных на сегодняшний день наборов элементов интерфейса для X Window System, которая является его основной, но не единственной целевой платформой. Будучи изначально частью графического редактора GIMP, он «отпочковался» в отдельный проект и приобрёл заметную популярность. GTK+ — свободное ПО, распространяемое на условиях GNU LGPL, и является частью проекта GNU.[2][3]
Архитектура
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+, но могут использоваться и отдельно.[3][2]
Внешний вид
Внешний вид графических интерфейсов, созданных с использованием 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», проходившем в Дублине [4]. Первый набросок плана разработки был опубликован 9 апреля 2009 [5].
Пример программы
Простая программа «Здравствуй, мир!» на 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 `pkg-config --cflags --libs gtk+-2.0`
Пример команды для mingw32 в linux:
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+-2.0`
Примечания
- ↑ http://mail.gnome.org/archives/gtk-devel-list/2009-October/msg00079.html
- ↑ 2,0 2,1 GTK+ 2.18.0 released (англ.). Проверено 23 сентября 2009.
- ↑ 3,0 3,1 GTK+ FAQ (англ.). Проверено 25 октбяря 2008.
- ↑ Анонс «GTK+ Theming Hackfest»
- ↑ План работ Gtk+ 3.0
См. также
Интерфейсы для других языков программирования
- gtkmm (C++)
- PyGTK (Python)
- Gtk2-perl (Perl)
- PHP-GTK (PHP)
- Полный список интерфейсов, включая и «неофициальные»
Ссылки
Файл:Heckert GNU white.svg | Портал «Свободное программное обеспечение» |
---|---|
Файл:Commons-logo.svg | GTK+ на Викискладе? |
- GTK+ — The GIMP Toolkit (англ.) — официальный сайт GTK+.
- Основы GTK+ — учебник по GTK+ 2.0 на русском языке.
- GTK+ 2.0 Tutorial (англ.) — официальный учебник по GTK+ 2.0.
- GTK+ 2.0 Tutorial (рус.) — официальный учебник по GTK+ 2.0.
GNOME |
||
---|---|---|
Сообщество | Файл:Gnomelogo.svg | |
Приложения |
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 • прочие… | |
Технологии |
ar:جتك+ ca:GTK cs:GTK+ da:GIMP Toolkit de:GTK+ el:GTK+ en:GTK+ eo:GTK+ es:GTK+ eu:GTK fi:GTK+ fr:GTK+ hi:जीटीके hu:GTK+ id:GTK+ is:GTK+ it:GTK+ ja:GTK+ ko:GTK+ lt:GTK nl:GTK+ no:GTK+ pl:GTK+ pt:GTK ro:GTK+ sk:GTK+ sl:GTK+ sv:GTK+ th:จีทีเคพลัส tr:GIMP Toolkit uk:GTK+ zh:GTK+
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....
- Страницы, использующие устаревший тег source
- Страницы с ошибками в подсветке синтаксиса
- Страницы с неработающими файловыми ссылками
- Википедия:Статьи о программах без скриншотов
- Статьи со ссылками на Викисклад
- GNOME
- GTK+
- GNU
- Библиотеки виджетов
- Свободные библиотеки программ
- Программное обеспечение для Mac OS X
- Программное обеспечение для Windows
- Программное обеспечение для Linux
- Программное обеспечение для OpenSolaris