GTK+

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
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`

Примечания

  1. http://mail.gnome.org/archives/gtk-devel-list/2009-October/msg00079.html
  2. 2,0 2,1 GTK+ 2.18.0 released (англ.). Проверено 23 сентября 2009.
  3. 3,0 3,1 GTK+ FAQ (англ.). Проверено 25 октбяря 2008.
  4. Анонс «GTK+ Theming Hackfest»
  5. План работ Gtk+ 3.0

См. также

Интерфейсы для других языков программирования

Ссылки

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 и ещё....