Автор (ы) оригинала | Спенсер Кимбалл , Питер Мэттис |
---|---|
Разработчики) | Проект GNOME , Экспериментальная вычислительная база (XCF) |
Первый выпуск | 14 апреля 1998 г . |
Стабильный выпуск | 4.0.3 / 7 февраля 2021 г . [1] |
Предварительный выпуск | 4.1.2 / 15 марта 2021 г . [2] |
Репозиторий | |
Написано в | C , CSS [3] |
Операционная система | Linux , Unix-подобный , macOS , Windows |
Тип | Набор инструментов для виджетов |
Лицензия | LGPLv2.1 + |
Веб-сайт | gtk |
GTK (ранее GTK + , [4] GIMP ToolKit ) - это бесплатный кроссплатформенный инструментарий виджетов с открытым исходным кодом для создания графических пользовательских интерфейсов (GUI). [5] Он лицензирован в соответствии с условиями Стандартной общественной лицензии ограниченного применения GNU , что позволяет использовать его как в бесплатном, так и в проприетарном программном обеспечении . Это один из самых популярных наборов инструментов для оконных систем Wayland и X11 . [6]
Архитектура программного обеспечения [ править ]
GTK , библиотека содержит набор графических элементов управления ( виджеты ); версия 3.22.16 содержит 186 активных и 36 устаревших виджетов. [7] GTK - это объектно-ориентированный инструментарий виджетов, написанный на языке программирования C ; он использует GObject , то есть объектную систему GLib , для ориентации объекта. Хотя GTK в основном предназначен для оконных систем на базе X11 и Wayland , он работает на других платформах, включая Microsoft Windows (с интерфейсом Windows API ) и macOS (с Quartz). Существует также серверная часть HTML5 под названием Broadway . [8] [9]
GTK можно настроить для изменения внешнего вида нарисованных виджетов; это делается с использованием различных механизмов отображения. Существует несколько механизмов отображения, которые пытаются имитировать внешний вид собственных виджетов на используемой платформе.
Начиная с версии 2.8, выпущенной в 2005 году, GTK начал переход на использование Cairo для визуализации большинства своих виджетов графических элементов управления . [10] Начиная с версии 3.0 GTK, весь рендеринг выполняется с использованием Cairo. [ необходима цитата ]
26 января 2018 г. на DevConf.cz Маттиас Класен представил обзор текущего состояния разработки GTK 4, включая подробное объяснение того, как рендеринг и ввод работали в GTK 3, какие изменения вносятся в GTK 4 (> 3.90), и почему. [11] В феврале было объявлено, что GTK 4 уберет «+» из названия проекта. [4]
GIMP Drawing Kit (GDK) [ править ]
GDK действует как оболочка для низкоуровневых функций, предоставляемых базовыми оконными и графическими системами.
GDK находится в /gdk
каталоге.
GTK Scene Graph Kit (GSK) [ править ]
GSK - это API визуализации и графа сцены для GTK. GSK находится между графическими элементами управления (виджетами) и рендерингом. GSK был окончательно объединен с GTK версии 3.90, выпущенной в марте 2017 года.
GSK находится в /gsk
каталоге.
GtkInspector [ править ]
GtkInspector был представлен в версии 3.14. [12] [13] GtkInspector можно вызвать только после установки пакета разработки libgtk-3-dev / gtk + -devel .
Дизайнеры графического интерфейса [ править ]
Для GTK существует несколько дизайнеров графического интерфейса . По состоянию на июль 2011 года активны следующие проекты:
- Glade поддерживает GtkBuilder , который является встроенным в GTK форматом описания GUI.
- Гаспачо , конструктор графического интерфейса для набора инструментов GTK, написанный на Python [14]
- Crow Designer использует собственный формат GuiXml и библиотеку GuiLoader. [15]
- Stetic , часть MonoDevelop , ориентирована на Gtk # .
- Gambas начиная с версии 2.0 на BASIC
- Xojo в Linux
GtkBuilder [ править ]
GtkBuilder позволяет разрабатывать пользовательские интерфейсы без написания кода. Интерфейс описывается в файле расширяемого языка разметки (XML), который затем загружается во время выполнения, а объекты создаются автоматически. Дизайнер интерфейсов Glade позволяет создавать пользовательский интерфейс в стиле « что вы видите, то и получаете» ( WYSIWYG ). Описание пользовательского интерфейса не зависит от используемого языка программирования.
Привязки языков [ править ]
Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если написаны привязки ; GTK имеет ряд привязок для разных языков. [16]
Gtk # [ править ]
Разработчики) | Xamarin |
---|---|
Первый выпуск | 12 марта 2004 г . |
Стабильный выпуск | 2.12.41 [17] / 22 сентября 2016 г . |
Предварительный выпуск | 2.99.3 (для GTK3) [17] / 6 июня 2014 г . |
Репозиторий |
|
Написано в | C # , XML , Perl , C |
Операционная система | Windows , macOS , Linux |
Тип | Набор инструментов для виджетов |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | моно-проект .com / GtkSharp |
Gtk # - это набор привязок .NET Framework для набора инструментов графического пользовательского интерфейса (GUI) GTK и различных библиотек GNOME . Библиотека упрощает создание графических приложений GNOME с использованием Mono или любой другой совместимой среды CLR. Gtk # - это система, управляемая событиями, как и любая другая современная библиотека окон, где каждый виджет позволяет связывать методы обработчика, которые вызываются при возникновении определенных событий.
Приложения, созданные с использованием Gtk #, будут работать на многих платформах, включая Linux , Windows и macOS . Пакеты Mono для Windows включают GTK, Gtk # и собственную тему, чтобы приложения выглядели как собственные приложения Windows. Начиная с Mono 1.9, для запуска приложений Gtk # в macOS больше не требуется запускать сервер X11 . [18]
Glade Interface Designer можно использовать с привязками Glade # для упрощения разработки приложений с графическим интерфейсом. Дизайнер графического интерфейса пользователя Stetic интегрирован с интегрированной средой разработки (IDE) MonoDevelop .
Помимо поддержки стандартного стека инструментов разработки GTK / GNOME, сборка gtk-dotnet.dll обеспечивает мост для использования функций, доступных в стеке .NET. На данный момент это включает в себя возможность использовать System.Drawing для рисования на виджете.
По состоянию на сентябрь 2020 [update]года поддержка Gtk # для Gtk3 остается на этапе предварительной версии , и были созданы разветвленные проекты, такие как GtkSharp , для обеспечения полной поддержки Gtk3 для C # и других языков интерфейса командной строки. Отсутствие выпущенной версии Gtk # с поддержкой Gtk3 было названо причиной удаления медиаплеера Banshee из Ubuntu 12.04. [19]
Развитие [ править ]
GTK в основном разрабатывается проектом GNOME , который также разрабатывает платформу разработки GNOME и среду рабочего стола GNOME. [20]
Разработка GTK слабо управляется. Обсуждение в основном происходит в нескольких публичных списках рассылки. [21] Разработчики и пользователи GNOME собираются на ежегодную встречу GUADEC Европейской конференции пользователей и разработчиков GNOME, чтобы обсудить текущее состояние и будущее GNOME. [22] GNOME включает стандарты и программы из freedesktop.org для лучшего взаимодействия с другими рабочими столами.
GTK в основном написаны на C . [23] Доступны многие языковые привязки .
1 сентября 2016 года в блоге разработчиков GTK была опубликована запись, среди прочего, о будущей схеме нумерации GTK. [24] GTK версии 3.22 с осени 2016 года будет последним выпуском 3.x. [ требуется уточнение ] Версия 3.24 была представлена осенью 2018 года с задержкой выпуска GTK 4. [25] После этого все ресурсы будут перемещены в серию разработки GTK 4 с названиями версий 3.90, 3.92 и т. д. Даже в серии 4.x находится в разработке, известные приложения по-прежнему используют GTK 2.x и не были перенесены на 3.22. Что касается будущего устаревшего программного обеспечения с использованием GTK, не было коллективного проекта по переносу программного обеспечения GTK 2.x на версию 3.22. Версия 3.24 находится в долгосрочной поддержке и является актуальной и будущей базой таких программ, как gimp 3.0 и Inkscape 1.0. [26] Таким образом, разработчики могут выбрать стабильную версию GTK 3.24 с исправлением ошибок или GTK 4 с изменениями и новыми функциями в будущем.
Автоматизация сборки [ править ]
GTK (и GNOME, GLib и т. Д.) Раньше использовали GNU Build System (названную Autotools) в качестве предпочтительной системы автоматизации сборки .
С 14 августа 2017 года основная ветвь GTK была построена с помощью Meson , а системные файлы сборки Autotools были удалены. [27]
Критика [ править ]
Наиболее частой критикой GTK является отсутствие обратной совместимости в основных обновлениях, особенно в интерфейсе прикладного программирования (API) [28] и тематике. [29]
Бенджамин Отте объяснил перерывы в совместимости между второстепенными выпусками во время цикла разработки GTK 3.x как следствие сильного давления на инновации, таких как предоставление функций, которых ожидают современные пользователи, и поддержка все более влиятельного протокола сервера отображения Wayland . С выпуском GTK 4 давление необходимости инноваций исчезнет, и баланс между стабильностью и инновациями изменится в сторону стабильности. [30] Точно так же недавние изменения в тематике специально предназначены для улучшения и стабилизации этой части API, а это означает, что некоторые вложения сейчас должны быть вознаграждены позже.
- Дирк Хондел, разработчик кода Subsurface и член Центра технологий открытого исходного кода Intel , раскритиковал разработчиков GTK за резкость и игнорирование большинства запросов сообщества. [31]
- Хонг Джен Йи, разработчик LXDE (версия GTK которого была удалена, а все усилия были сосредоточены на порте Qt ), выразил пренебрежение версией 3 радикальных изменений API инструментария GTK и увеличенным использованием памяти, а также перенесен PCMan File Manager (PCManFM) в Qt . PCManFM разрабатывается одновременно с GTK и с бэкэндом Qt. [32]
- Audacious музыкальный проигрыватель переехал в Qt в версии 3.6. [33] Причины, указанные разработчиками для этого, включают переход к оформлению окон на стороне клиента, который, по их утверждениям, заставляет приложение выглядеть « GNOME -y и неуместно». [34]
- Wireshark перешел на Qt из-за отсутствия хорошего опыта кроссплатформенной поддержки GTK. [35]
Используйте [ редактировать ]
Приложения [ править ]
Некоторые известные приложения, которые используют или когда-то использовали GTK в качестве инструментария виджетов, включают:
- Основные приложения GNOME - как часть среды рабочего стола GNOME , разработанная совместно с самим GTK.
- AbiWord - текстовый процессор (3.0+ с GTK + 3)
- Анюта - Интегрированная среда разработки (IDE) (GTK + 3)
- Ardor - цифровая звуковая рабочая станция
- Chromium - веб-браузер (до версии 34, заменен на Aura в версии 35+) [ необходима ссылка ]
- Ekiga (ранее GnomeMeeting) - VoIP и видеоконференции приложения
- GNU Emacs может использовать GTK при работе в X. (GTK + 3 с 24.2+)
- Evolution - Персональный информационный менеджер (GTK + 3 с 3.x, GTK 4 с версией 40.0)
- gconfig - утилита настройки исходного кода ядра Linux .
- Geany - легкая кроссплатформенная IDE и текстовый редактор GTK на основе Scintilla . (Версия 1.37.1 на основе GTK + 3.24.23, последняя с поддержкой GTK + 2.20+)
- GIMP - редактор растровой графики (3.0 с GTK + 3, 2.99.4 превью 3.0)
- Gnumeric - приложение для работы с электронными таблицами (1.12.x с GTK + 3)
- Gramps - Программа для генеалогии (4.0+ с GTK + 3)
- Inkscape - редактор векторной графики для SVG (1.0.x с GTK + 3)
- LiVES - Видеоредактор (GTK + 2.16+ или 3)
- Midori - минималистичный веб-браузер, использующий GTKWebKit в качестве движка рендеринга и GTK в качестве инструментария виджетов (GTK + 3)
- Pidgin - приложение для обмена мгновенными сообщениями
Среды рабочего стола [ править ]
Некоторые среды рабочего стола используют GTK в качестве инструментария виджетов.
Текущий [ править ]
- GNOME , основанный на GTK, что означает, что программы, родные для GNOME, используют GTK.
- Budgie , созданный с нуля для преемника SolusOS, операционной системы Solus
- Cinnamon , форк GNOME 3, использующий GTK версии 3
- MATE , форк GNOME 2, использующий GTK 3 начиная с версии 1.18.
- Xfce , основанный на GTK 3 начиная с версии 4.14
- Pantheon использует исключительно GTK 3, разрабатываемый elementary OS.
- Sugar , настольная среда для начального образования молодежи , использующая GTK, особенно PyGTK.
- KDE , хотя и основан на Qt , имеет интеграцию с программами и темами, написанными на GTK, начиная с версии 4.2.
- Phosh , мобильный пользовательский интерфейс, разработанный для PureOS
Неактивный [ править ]
- Unity , бывшая среда рабочего стола Ubuntu по умолчанию
- LXDE (облегченная среда рабочего стола X11) основана на GTK 2
- Доступ к платформе Linux (преемник платформы КПК Palm OS )
- Consort, резервный режим GNOME 3.4 - форк от SolusOS
- GPE , среда для карманного компьютера GPE
- ROX Desktop , легкий настольный компьютер, с функциями из GUI из RISC OS
Разное [ править ]
Программы GTK может работать на настольных средах , основанных на X11 и Wayland, или оконных менеджеров , даже тех , кто не сделал с GTK, при условии, что установлены необходимые библиотеки; это включает macOS, если установлен X11.app . GTK также можно запустить в Microsoft Windows , где он используется некоторыми популярными кроссплатформенными приложениями, такими как Pidgin и GIMP. wxWidgets , кроссплатформенный набор инструментов с графическим интерфейсом, использует GTK в Linux. [36] Другие порты включают DirectFB (например, используемый установщиком Debian ) и ncurses . [37]
Оконные менеджеры [ править ]
Следующие оконные менеджеры используют GTK:
- Aewm
- AfterStep
- Amaterus
- Консорциум
- IceWM
- Марко
- Metacity
- Маффин
- Бормотать
- Рыба-пила
- Wmg
- Xfwm
GtkSourceView [ править ]
Для подсветки синтаксиса есть GtkSourceView , «виджет редактирования исходного кода». GtkSourceView поддерживается GNOME отдельно от GTK в виде библиотеки: gtksourceview . В планах переименовать в gsv.
GtkSpell [ править ]
GtkSpell - это библиотека, отдельная от GTK. GtkSpell зависит от GTK и Enchant . Enchant - это оболочка для ispell, hunspell и т. Д. , Собственно движка / программного обеспечения проверки орфографии . GtkSpell использует виджет GTK GtkTextView, чтобы выделить слова с ошибками и предложить замену.
- gtkspell .sourceforge .net
Пример [ править ]
Документация доступна здесь:
- разработчик .gnome .org / gtk4 / stable /
Следующий код представляет собой графический GTK привет-мир программ на языке программирования Си . В этой программе есть окно с заголовком «Привет, мир!» и этикетка с аналогичным текстом.
// helloworld.c #include <gtk / gtk.h>/ * Обратный вызов, который будет вызываться при активации приложения * / static void activate_callback ( GApplication * app , gpointer user_data ) { GtkWidget * window ; GtkWidget * label ; / * Создаем главное окно верхнего уровня * / window = gtk_window_new (); / * Присвойте ему название * / gtk_window_set_title ( GTK_WINDOW ( window ), «Привет, мир!» ); / * Устанавливаем размер окна по умолчанию * / gtk_window_set_default_size ( GTK_WINDOW ( window ), 200 , 100 ); / * Присваиваем переменной "label" новую метку GTK, * с текстом "Hello, world!" * / label = gtk_label_new ( «Привет, мир!» ); / * Нанести метку на главное окно * / gtk_window_set_child ( GTK_WINDOW ( window ), label ); / * Сообщаем приложению об окне. * Процесс приложения будет продолжать работать, пока * все окна не будут закрыты * / gtk_application_add_window ( GTK_APPLICATION ( приложение ), GTK_WINDOW ( окно )); / * Убедитесь, что все, окно и метка, видны * / gtk_widget_show ( window ); }int main ( int argc , char * argv []) { / * Создайте наше тестовое приложение * / GtkApplication * application = gtk_application_new ( "org.wikipedia.gtktest" , 0 ); / * Подключаем наш обработчик к обратному вызову "activate", который будет вызываться * при активации приложения пользователем, например, при первом запуске * / g_signal_connect ( application , "activate" , G_CALLBACK ( activate_callback ), NULL ); / * Запускаем приложение и возвращаем его статус * / return g_application_run ( G_APPLICATION ( application ), argc , argv ); }
Сначала необходимо установить библиотеки в Debian или производных:$ sudo apt-get install libgtk-4-dev
Используя pkg-config в оболочке Unix , этот код можно скомпилировать с помощью следующей команды:$ cc -Wall $(pkg-config --cflags --libs gtk4) helloworld.c -o helloworld
Вызвать программу:$ ./helloworld
История [ править ]
Linux / Unix [ править ]
GTK изначально был разработан и использовался в программе обработки изображений GNU (GIMP) как замена инструментария Motif ; в какой-то момент Питер Маттис разочаровался в Motif и начал писать свой собственный инструментарий GUI под названием GIMP toolkit и успешно заменил Motif выпуском GIMP 0.60. [38] Наконец, GTK был переписан в объектно-ориентированный формат и переименован в GTK +. [39] Впервые это было использовано в версии GIMP 0.99. Впоследствии GTK был принят для обслуживания GNOME Foundation , который использует его в среде рабочего стола GNOME.
Серия релиз GTK 2.0.0 введены новые функции , которые включают в себя улучшенный рендеринг текста с помощью Pango , новую тему двигатель, улучшенная доступность с помощью Accessibility Toolkit , переход на Unicode с использованием UTF-8 строк и более гибкий API. Начиная с версии 2.8, GTK 2 зависит от графической библиотеки Cairo для рендеринга векторной графики.
GTK версии 3.0.0 включает переработанную обработку устройств ввода, поддержку тем, написанных с использованием синтаксиса, подобного CSS , и возможность получать информацию о других открытых приложениях GTK.
Знак `` + '' был сброшен, а вместо него просто `` GTK '' в феврале 2019 года во время хакатона . [40]
macOS [ править ]
С Quartz -Backend [41] GTK доступен в macOS . [42]
Windows [ править ]
- После GTK 2.24.10 и 3.6.4 разработка Windows с установщиком была закрыта Gnome. Установка MSYS2 в Windows - хороший способ использовать настоящий GTK. [43]
- GTK 2.24.10 и 3.6.4 доступны в Интернете, но содержат много ошибок и ограничены по сравнению с текущими версиями. [44] [45]
- Версия для 64-битной Windows подготовлена Томом Шунджансом с доступными версиями 2.24.33 (актуально, как Linux) и 3.24.24 (актуально, как Linux) с января 2021 года. [46]
- Обновление Windows 10 Fall Creators Update включает подсистему Windows для Linux (WSL). С дистрибутивами Linux, такими как Ubuntu или Debian, доступными в Магазине Windows, и с X-сервером, таким как Xming или VcXsvr, тысячи программ, таких как GTK 2 или 3, могут работать с X или поддержкой терминала.
OpenVMS [ править ]
HP заявила, что их целью было объединить необходимые изменения OpenVMS в поток разработки GTK версии 1.3 [47], однако этого так и не произошло . Последней версией GTK для OpenVMS является версия 1.2.10. [48]
4.x [ править ]
Одним из кардинальных нововведений, реализованных в ходе цикла разработки GTK 4 (например, GTK 3.92 и т. Д.), Было делегирование функций вспомогательным объектам вместо их кодирования в базовые классы, предоставляемые GTK.
- обработка событий от обработчиков сигналов, описываемых GtkWidget, делегируется контроллерам событий
- рендеринг делегирован объектам GtkSnapshot
- механизм компоновки из GtkWidget делегируется GtkLayoutManager
26 января 2018 года на DevConf.cz Маттиас Класен сделал обзор текущего состояния разработки GTK 4, включая подробное объяснение того, как рендеринг и ввод работали в GTK 3, какие изменения были внесены в GTK 4, и причины этих изменений. Также были приведены примеры того, что стало возможным с GTK 4. [49]
Релизы [ править ]
История выпуска | |||||||
---|---|---|---|---|---|---|---|
Выпуск серии | Первый выпуск | Основные улучшения | Последняя дополнительная версия | ||||
GTK + 1 | |||||||
1.0 | 1998-04-13 [50] | Первая стабильная версия | 1.0.6 | ||||
1.2 | 1999-02-25 [51] | Новые виджеты :
| 1.2.10 | ||||
Легенда: Старая версия | |||||||
GTK + 2 | |||||||
2.0 | 2002-03-11 [52] | GObject Общая поддержка UTF-8 | 2.0.9 | ||||
2.2 | 2002-12-22 [53] | Поддержка нескольких головок | 2.2.4 | ||||
2,4 | 2004-03-16 [54] | Новые виджеты:
| 2.4.14 | ||||
2,6 | 2004-12-16 [55] | Новые виджеты:
Последний, поддерживающий Windows 98 / Me | 2.6.10 | ||||
2,8 | 2005-08-13 [56] | Большинство виджетов рендерится в Каире. | 2.8.20 | ||||
2.10 | 2006-07-03 [57] | Новые виджеты:
Поддержка печати: GtkPrintOperation | 2.10.14 | ||||
2,12 | 2007-09-14 [58] | GtkBuilder | 2.12.12 | ||||
2,14 | 2008-09-04 [59] | Поддержка загрузки JPEG 2000 | 2.14.7 | ||||
2,16 | 2009-03-13 [60] | Новый виджет: GtkOrientable Предупреждение о Caps Lock при вводе пароля Улучшения в GtkScale, GtkStatusIcon, GtkFileChooser | 2.16.6 | ||||
2,18 | 2009-09-23 [61] | Новый виджет: GtkInfoBar Улучшение выбора файлов, печать Чтобы удалить большую часть необходимого IPC между приложением X11 и сервером X11, GDK переписан (в основном Александром Ларссоном) для использования «клиентских окон», т. Е. GdkWindow, который должен иметь каждый виджет, теперь принадлежит клиенту. | 2.18.9 | ||||
2,20 | 2010-03-23 [62] | Новые виджеты:
Улучшение выбора файлов, работы с клавиатурой, GDK Данные самоанализа теперь включены в GTK | 2.20.1 | ||||
2,22 | 2010-09-23 [63] | GdkPixbuf перенесен в отдельный модуль Большинство чертежей GDK основаны на Каире. Многие внутренние данные теперь являются конфиденциальными и могут быть закрыты при подготовке к GTK 3. | 2.22.1 | ||||
2,24 | 2011-01-30 [64] | Новый виджет: GtkComboBoxText Серверная часть печати CUPS может отправлять задания на печать в формате PDF. GtkBuilder получил поддержку текстовых тегов и кнопок меню, а также было добавлено множество исправлений аннотаций интроспекции. Переход с GTK + 2.x на GTK + 3 | 2.24.32 (2018-01-08) | ||||
Легенда: Старая версия Старая версия, все еще поддерживается | |||||||
GTK 3 | |||||||
3.0 | 2011-02-10 [65] | Разработка и проектирование выпуска инструментария GTK 3 началось в феврале 2009 года во время GTK Theming Hackfest, проходившего в Дублине [66]
Завершено в основном Project Ridley
Все рендеринг выполняется с использованием Cairo. GDK стал более агностиком X11 XInput2, API темы основан на каскадных таблицах стилей (CSS), что ухудшает достижимую производительность для частоты кадров 60 Гц. | 3.0.12 | ||||
3,2 | 2011-09-25 [69] | Новые виджеты:
Новое диалоговое окно выбора шрифта Новые экспериментальные серверные части:
| 3.2.4 | ||||
3,4 | 2012-03-26 [70] | Поддержка меню в GtkApplication Новый выбор цвета Добавлена поддержка сенсорных устройств. Добавлена поддержка плавной прокрутки GtkScrolledWindow будет выполнять кинетическую прокрутку с помощью сенсорных устройств улучшена поддержка macOS Это первая версия GTK 3, которая хорошо работает в Windows. Бэкэнд Wayland обновлен до текущей версии Wayland Кнопки вращения получили новый вид Доступность: переписана поддержка древовидного доступа Более полная поддержка тематики CSS | 3.4.4 | ||||
3,6 | 2012-09-24 [71] | Новые виджеты:
Кнопки вертикального вращения CSS-анимация, размытие теней Поддержка плавного затухания и переходов в темах | 3.6.5 | ||||
3.8 | 2013-03-25 [72] | Стабильная поддержка Wayland 1.0 Поддержка Broadwayd сервера Улучшенная тематика Лучшее управление геометрией Улучшения касания Поддержка с оконным менеджером протокола синхронизации кадров GdkFrameClock добавляли [73] | 3.8.9 | ||||
3.10 | 2013-09-23 [74] | Новые виджеты:
Поддержка Wayland 1.2
Добавлен:
Удаленный:
Отрывные пункты меню, а также множество настроек GTK Современная чертежная модель GTK | 3.10.9 | ||||
3,12 | 2014-03-25 [75] | Клиентские декорации [76] Поддержка Wayland 1.5 Новый виджет: GtkPopover (альтернатива меню и диалогам) | 3.12.2 | ||||
3,14 | 2014-09-22 [77] | Представлен GtkInspector (копия gtkparasite) [78] [79] Улучшенная поддержка жестов / слияния мультитач [80] [81] Не рекомендуется: [82]
Большинство виджетов внутренне преобразованы для использования жестов Wayland поддерживает классический режим GNOME Shell [83] | 3.14.15 | ||||
3,16 | 2015-03-22 [84] | GDK поддерживает рендеринг окон с использованием OpenGL для X11 и Wayland с использованием libepoxy. Новые виджеты:
Прокрутка переработана ( полоса прокрутки по умолчанию скрыта [85] ) Бэкэнд Экспериментальный Мир [86] | 3.16.7 | ||||
3,18 | 2015-09-23 [87] | Добавить инфраструктуру узла CSS Больше обновлений дизайна Filechooser и улучшенный поиск filechooser Прекращена поддержка Windows XP Поддержка модели для списка и блока потока Кинетическая прокрутка тачпада Жесты сенсорной панели (Wayland) утилита gtk-builder-tool Окна только для вывода | 3.18.9 | ||||
3.20 | 21 марта 2016 г. [88] | Дальнейшая интеграция узлов CSS [89] Переместите перетаскивание в GDK Новый виджет: GtkShortcutsWindow (показывает сочетания клавиш и жесты приложения) | 3.20.10 | ||||
3,22 | 2016-09-21 [90] | Последний выпуск 3.x [24] Поддержка планшетов Wayland объединена, [91] поддержка графических планшетов считается полной [92] GTK 3.22 должен быть таким же устойчивым к породам (и, следовательно, «бурить»), как GTK 2 [30] [93] [94] | от 3 лет 3.22.29 | ||||
3,24 | 2018-09-03 [95] | 3.22 должна была стать последней версией серии GTK 3.
Удары зависимости - требуются:
Новые возможности выбора шрифта:
Новые возможности Emoji:
Другие новые API: gdk_window_move_to_rect Wayland: используйте анонимную разделяемую память во FreeBSD Контроллеры событий, перенесенные из GTK 4:
Устарели несколько API-интерфейсов, отсутствующих в GTK 4:
| 3.23.0 3.23.1 3.23.2 3.23.3 3.24.0 … 3.24.5 3.24.14 … 3.24.29 | ||||
Легенда: Старая версия Старая версия, все еще поддерживается Последняя версия | |||||||
GTK 4 | |||||||
3,90 | 31 марта 2017 г. [96] | Объединение GTK Scene Graph Kit (GSK) [97] Удалите все API, помеченные как устаревшие.
Тяжелое развитие
Новый Vulkan -renderer дополняет старый Cairo -renderer [98] | 3.89.1 3,89,2 | ||||
3,92 | 2017-10-18 [99] [100] | Поскольку GNOME 3.26 был выпущен уже 13 сентября 2017 года [101], он не был основан на GTK 3.92. GNU autotools был заменен на Meson . | 3,91,0 3.91.1 | ||||
3,94 | 2018-06-26 [102] | 3,93
GdkWindow переименован в GdkSurface Новая абстракция для содержимого, доступного для рисования: GdkPaintable Есть поддержка отображения мультимедиа с помощью:
| 3,93 3,94,0 | ||||
3,96 | 2019-05-07 [103] | Команда gtk4-builder-tool получила возможность конвертировать файлы пользовательского интерфейса GTK3 в GTK4; хотя с помощью AMTK меню, панели инструментов или другие объекты, такие как GtkShortcutsWindow, создаются программно (не с помощью файла * .ui), но с помощью удобных API. [104] simplify--3to4 GtkWidget теперь может использовать GtkLayoutManager для распределения размера
Обработка фокуса была переписана, а генерация события смены фокуса была унифицирована с событиями пересечения События были упрощены и используются только для ввода:
| 3,96,0 | ||||
3,98 | 2020-02-10 [103] |
| 3,98,5 | ||||
3,99,0 | 2020-07-31 [2] |
| 3,99,4 | ||||
4.0 | 2020-12-16 [107] | 4.0.2 | |||||
4.2 | 2021-03-30 [108] | ||||||
Легенда: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск |
Команда GNOME регулярно выпускает новые версии. [97]
См. Также [ править ]
- Украшение на стороне клиента
- Список наборов инструментов для виджетов
- GDK - GIMP Drawing Kit находится между xlib и библиотекой GTK, обрабатывая базовый рендеринг, такой как примитивы рисования, растровая графика (растровые изображения), курсоры, шрифты, а также события окна и функциональность перетаскивания.
- gtkmm - привязки C ++ для GTK
- Qt - кроссплатформенный фреймворк и инструментарий
- Xojo - кроссплатформенный инструмент и фреймворк для разработки
- Библиотеки Enlightenment Foundation (EFL) - инструментарий виджетов, написанный для оконного менеджера Enlightenment
- FLTK - легкий, кроссплатформенный, неродной набор инструментов для виджетов.
- FOX toolkit - быстрый кроссплатформенный инструментарий виджетов с открытым исходным кодом.
- IUP - многоплатформенный инструментарий для создания собственных графических пользовательских интерфейсов
- Окончательный ++
- Библиотека визуальных компонентов (VCL)
- Vala - объектно-ориентированный язык программирования с самостоятельным компилятором, который генерирует код C и использует систему GObject.
Ссылки [ править ]
- ^ Clasen, Матиас (7 февраля 2021). "GTK 4.0.3" . FTP-релизы (список рассылки) . Проверено 7 февраля 2021 года .
- ^ a b c Класен, Матиас (15 марта 2021 г.). «GTK 4.1.2» . FTP-релизы (список рассылки) . Проверено 21 марта 2021 года .
- ^ «Проект с открытым исходным кодом GTK на Open Hub: страница языков» . www.openhub.net .
- ^ a b Bassi, Emmanuele (6 февраля 2019 г.). «Переименовать проект в« ГТК » » . mail.gnome.org . Список рассылки GNOME . Проверено 7 февраля 2019 .
- ^ Команда GTK +. «Возможности GTK +» . Проверено 8 сентября 2014 года .
- ^ «Документация» . www.x.org .
- ^ "Справочное руководство GTK + 3" . Проверено 15 июля 2017 года .
- ^ «Использование GTK + с Бродвеем» . Разработчик GNOME . GNOME . Проверено 6 марта 2018 .
- ^ "Бродвей - GitHub симбиоз / симбиоз Wiki" . GitHub . Проверено 6 марта 2018 .
- ^ «GTK + для использования Cairo Vector Engine» . Проверено 27 декабря 2009 года .
- ^ «Маттиас Класен DevConf.cz 2018 говорит о GTK + 4» (PDF) . 26 января 2018.
- ^ "Представляем GtkInspector" . 15 мая 2014 г.
- ^ "Еще одно обновление GtkInspector" . 11 июля 2014 г.
- ^ «Debian - Результаты поиска пакетов - gazpacho» . packages.debian.org .
- ^ «Ничего личного - Сайт разработки для Crow Designer, GuiLoader и Rally - Хостинг проектов Google» . Архивировано из оригинального 24 января 2013 года . Проверено 17 февраля 2014 года .
- ^ Команда GTK +. «Привязки языка GTK +» . www.gtk.org . Дата обращения 3 июня 2017 .
- ^ a b «Gtk # - это привязка Mono / .NET к кросс-платформенному набору инструментов графического интерфейса Gtk + и основа большинства приложений с графическим интерфейсом, созданных с помощью Mono: mono / gtk-sharp» . 16 ноября 2019 г. - через GitHub.
- ^ "Загрузить Gtk #" . Проект GTK +.
- ^ " ' Bansheegeddon' может увидеть Banshee, Mono удален из Ubuntu по умолчанию" . ITWorld . Проверено 31 августа 2015 года .
- ^ «Быстрый SWOT-анализ GNOME» . Проект GNOME . Проверено 18 марта 2014 года .
- ^ "Списки рассылки GTK + и GNOME" . Проект GNOME . Проверено 4 декабря 2011 года .
- ^ "О" . Европейская конференция пользователей и разработчиков GNOME ( GUADEC ). Архивировано из оригинала 4 октября 2011 года . Проверено 3 декабря 2011 года .
- ^ "Языки GNOME" . Охлох . Программное обеспечение Black Duck . Проверено 22 мая 2014 .
- ^ a b «Обещание управления версиями и долгосрочной стабильности в GTK» . Блог разработки GTK. 1 сентября 2016 г.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=GTK-3.24-Coming-This-Fall
- ^ https://wiki.gimp.org/wiki/Roadmap
- ^ "Система сборки изменяет основную ветку GTK" . mail.gnome.org .
- ^ «Как создать приложение Gtk +? - Мортен Велиндер» . blogs.gnome.org . Дата обращения 3 июня 2017 .
- ^ mclasen (20 ноября 2015 г.). «Обновление GTK +» . Продолжается .
- ^ a b «GUADEC2013: Бенджамин Отте говорит о GTK +» . ГУАДЕК .
- ^ Larabel, Майкл (12 января 2014). «Самая большая проблема с GTK и что Qt делает хорошо» . Фороникс . Проверено 10 сентября 2014 года .
- ↑ Хон Джен Йи (26 марта 2013 г.). «Выпущен PCManFM Qt 0.1.0» . Проверено 10 сентября 2014 года .
- ^ "Audacious - продвинутый аудиоплеер" . audacious-media-player.org .
- ↑ Линдгрен, Джон (6 мая 2014 г.). "Уродливые оконные украшения и как их исправить (GTK 3.12)" . Проверено 21 октября 2014 года .
- ↑ Джеральд Комбс (15 октября 2013 г.). «Переходим на Qt» . Дата обращения 19 августа 2015 .
- ^ "GTK +" . WxWidgets по сравнению с другими наборами инструментов .
- ^ "Порт GTK + TTY" . Slashdot . Проверено 31 августа 2010 года .
- ^ "LinuxWorld - Куда делись Спенсер Кимбалл и Питер Мэттис?" . Архивировано 17 апреля 1999 года . Проверено 19 августа 2013 года .CS1 maint: bot: original URL status unknown (link)
- ^ "Что означает + в GTK +?" . 2011. Архивировано из оригинального 26 марта 2012 года . Проверено 18 марта 2014 года .
- ^ "Переименовать некоторые ссылки на GTK + (d080be3e) · Коммит · GNOME / gtk" . GitLab .
- ^ "Проекты / GTK / OSX - GNOME Wiki!" . wiki.gnome.org .
- ^ "Загрузка GTK: Mac OS X" . www.gtk.org .
- ^ "Загрузка GTK: Windows" . www.gtk.org .
- ^ «GTK + для среды выполнения Windows» . SourceForge .
- ^ "GTK +" . www.tarnyko.net .
- ^ «GTK + для установщика среды выполнения Windows (ответвление с http://gtk-win.sourceforge.net): tschoonj / GTK-for-Windows-Runtime-Environment-Installer» . 19 ноября 2020 г. - через GitHub.
- ^ http://h41379.www4.hpe.com/openvms/products/ips/gtk.html
- ^ http://h41379.www4.hpe.com/openvms/products/ips/gtk_down.html
- ^ https://mclasen.fedorapeople.org/gtk4-devconf2018.pdf
- ^ Amundson, Шон Т. (13 апреля 1998). "ОБЪЯВЛЕНИЕ: Выпущен GTK + 1.0.0!" . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Amundson, Шон Т. (25 февраля 1999). «ОБЪЯВЛЕНИЕ: Выпущены GTK + и GLib 1.2.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ↑ Тейлор, Оуэн (11 марта 2002 г.). «Выпущен GTK + -2.0.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ↑ Тейлор, Оуэн (22 декабря 2002 г.). «Выпущен GTK + -2.2.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ↑ Тейлор, Оуэн (16 марта 2004 г.). «Выпущен GTK + -2.4.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (16 декабря 2004). «Выпущен GTK + -2.6.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (13 августа 2005). «Выпущен GTK + 2.8.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Матиас (3 июля 2006). «Выпущен GTK + 2.10» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (14 сентября 2007). «Выпущен GTK + 2.12» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Маттиас (4 сентября 2008). «Выпущен GTK + 2.14.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (13 марта 2009). «Выпущен GTK + 2.16.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (23 сентября 2009). «Выпущен GTK + 2.18.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (23 марта 2010). «Выпущен GTK + 2.20.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (23 сентября 2010). «Выпущен GTK + 2.22.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (20 января 2011). «GTK + 2.24.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (10 февраля 2011). «Выпущен GTK + 3.0.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ "Gtk + 3.0 Theming API Hackfest" . Кремниевый остров . Дата обращения 3 июня 2017 .
- ^ "Проект дорожной карты Gtk + 3" . Дата обращения 3 июня 2017 .
- ^ "Чердак / ProjectRidley - GNOME Wiki!" . wiki.gnome.org .
- ^ Clasen, Matthias (25 сентября 2011). «GTK + 3.2.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (26 марта 2012). «Выпущен GTK + 3.4.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (24 сентября 2012). «Выпущен GTK + 3.6.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (25 марта 2013). «Выпущен GTK + 3.8.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ "Кадровые часы: Справочное руководство GDK 3" . developer.gnome.org .
- ^ Clasen, Matthias (23 сентября 2013). «Выпущен GTK + 3.10.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (25 марта 2014). «Выпущен GTK + 3.12» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ "Клиентские украшения в темах | Продолжается" .
- ^ Clasen, Matthias (22 сентября 2014). «Выпущен GTK + 3.14.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Matthias Clasen (15 мая 2014). "Запись в блоге автора GtkInspector" . Дата обращения 17 мая 2014 .
- ^ "GtkInspector в вики GNOME" . 15 мая 2014 . Дата обращения 17 мая 2014 .
- ^ "Слияние жестов в 3.14" . 23 мая 2014 . Дата обращения 23 мая 2014 .
- ^ «RFC: жесты» . 4 марта 2014 . Дата обращения 23 мая 2014 .
- ^ "gtk + 3.13.2" . 27 мая 2014 г.
- ^ "gtk + 3.13.3" . 24 июня 2014 г.
- ^ Clasen, Matthias (22 марта 2015). «Выпущен GTK + 3.16.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ онлайн, heise. "Linux-Desktop: Neues Gnome zeigt Nachrichten oben" . heise онлайн . Дата обращения 3 июня 2017 .
- ^ "Выпущен GTK + 3.16.0" . mail.gnome.org . Дата обращения 3 июня 2017 .
- ↑ Нестор, Мариус (24 сентября 2015 г.). «GTK + 3.18.0 официально выпущен как часть среды рабочего стола GNOME 3.18» . Софтпедия . Проверено 25 мая 2019 .
- ^ Clasen, Matthias (21 марта 2016). «ГТК + 3.20» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ «GTK + 3.20 - Классы стилей и имена элементов» . 20 ноября 2015.
- ^ Clasen, Matthias (21 сентября 2016). «Выпущен GTK + 3.22» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ «Объединена поддержка планшетов GTK + Wayland - Карлос Гарначо» .
- ^ "вход хуттера" . www.x.org .
- ^ a b "Gtk 4.0 не будет стабильным до Gtk 4.6" . 13 июня 2016 г.
- ^ a b "Gtk 5.0 не будет стабильным до версии 5.6" . 14 июня 2016 г.
- ^ Clasen, Матиас (3 сентября 2018). «GTK + 3.24.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (31 марта 2017). "GTK + 3.90.0" . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ a b "Проекты / GTK / Дорожная карта - GNOME Wiki!" . wiki.gnome.org .
- ^ "Фиксирует · мастер · GNOME / gtk" . GitLab .
- ^ Clasen, Matthias (18 октября 2017). «GTK + 3.92.1» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ Clasen, Matthias (23 октября 2017). «ГТК + 3.92» . Блог разработчиков GTK . Проверено 25 мая 2019 .
- ^ «Выпущен GNOME 3.26» . 13 сентября 2017.
- ^ Clasen, Matthias (26 июня 2018). «GTK + 3.94.0» . Почтовые службы GNOME (список рассылки) . Проверено 20 мая 2019 .
- ^ a b Класен, Матиас (7 мая 2019 г.). "GTK 3.96" . Почтовые службы GNOME (список рассылки) . Проверено 28 мая 2019 .
- ^ "Представляем AMTK" .
- ^ Clasen, Matthias (13 февраля 2020). «ГТК 3.98» . Блог разработчиков GTK + . Дата обращения 18 февраля 2020 .
- ^ "Слайд-колоды GUADEC 2020" .
- ^ Clasen, Matthias (16 декабря 2020). «GTK 4.0.0» . Почтовые службы GNOME (список рассылки) . Проверено 16 декабря 2020 .
- ^ Clasen, Matthias (30 марта 2021). «GTK 4.2.0» . Почтовые службы GNOME (список рассылки) . Проверено 30 марта 2021 года .
Библиография [ править ]
- Краузе, Эндрю (23 апреля 2007 г.), Основы разработки GTK + (1-е изд.), Апресс , ISBN 978-1-59059-793-4
- Райт, Питер (15 мая 2000 г.), Начиная с GTK + и GNOME (1-е изд.), Peer Information , ISBN 978-1-86100-381-2
- Логан, Сид (6 сентября 2001 г.), Gtk + Programming in C (1-е изд.), Prentice Hall , ISBN 978-0-13-014264-1
Внешние ссылки [ править ]
Викискладе есть медиафайлы по теме GTK . |
В Wikibook X Window Programming есть страница по теме: GTK + |
- Официальный веб-сайт