GTK

редактировать
Кросс-платформенный инструментарий виджетов для создания графических пользовательских интерфейсов
GTK
GTK logo.svg
gtk3-widget-factory - это набор примеров, демонстрирующих многие из виджетов GUI в GTK версии 3 gtk3-widget-factory представляет собой набор примеров, демонстрирующих многие из виджетов GUI в GTK версии 3
Исходный автор (ы) Спенсер Кимбалл, Питер Мэттис
Разработчик (ы)) Проект GNOME, eXperimental Computing Facility (XCF)
Первый выпуск14 апреля 1998 г.; 22 года назад (1998-04-14)
Стабильный выпуск 3.24.23 / 4 сентября 2020 г.; 46 дней назад (2020-09-04)
Предварительный выпуск 3.99.3 / 16 октября 2020 г.; 4 дня назад (2020-10-16)
Репозиторий Измените это на Wikidata
Написано наC, CSS
Операционная система Linux, Unix-like, macOS, Windows
Тип Набор инструментов для виджетов
Лицензия LGPLv2.1 +
Веб-сайтgtk.org

GTK (ранее GTK +, GNOME ToolKit ) - это бесплатный и открытый кроссплатформенный набор инструментов виджетов для создания графических пользовательских интерфейсов (GUI). Он лицензирован в соответствии с условиями Стандартной общественной лицензии ограниченного применения GNU, что позволяет использовать его как бесплатному, так и проприетарному программному обеспечению. Наряду с Qt, это один из самых популярных наборов инструментов для оконных систем Wayland и X11 .

Содержание

  • 1 Архитектура программного обеспечения
    • 1.1 GIMP Drawing Kit (GDK)
    • 1.2 GTK Scene Graph Kit (GSK)
    • 1.3 GtkInspector
    • 1.4 Дизайнеры GUI
      • 1.4.1 GtkBuilder
    • 1.5 Языковые привязки
      • 1.5. 1 Gtk #
  • 2 Разработка
    • 2.1 Автоматизация сборки
  • 3 Критика
  • 4 Использование
    • 4.1 Приложения
    • 4.2 Среды рабочего стола
      • 4.2.1 Текущие
      • 4.2.2 Неактивные
      • 4.2.3 Разное
    • 4.3 Оконные менеджеры
    • 4.4 GtkSourceView
    • 4.5 GtkSpell
  • 5 Пример
  • 6 История
    • 6.1 Linux / Unix
    • 6.2 macOS
    • 6.3 Windows
    • 6.4 OpenVMS
    • 6.5 4.x
    • 6.6 Релизы
  • 7 См. Также
  • 8 Ссылки
  • 9 Библиография
  • 10 Внешние ссылки

Архитектура программного обеспечения

Упрощенная архитектура программного обеспечения GTK . Панго, GDK, ATK, GIO, Каир и GLib GDK содержит серверные части для X11, Wayland, Broadway (HTTP ), Quartz и GDI и полагается на Cairo для рендеринга. Его новый SceneGraph находится в стадии разработки.

Библиотека GTK содержит набор графических элементов управления (виджеты ); версия 3.22.16 содержит 186 активных и 36 устаревших виджетов. GTK - это объектно-ориентированный набор инструментов виджетов, написанный на языке программирования C ; он использует GObject, то есть объектную систему GLib, для ориентации объекта. Хотя GTK в основном предназначен для оконных систем на основе X11 и Wayland, он работает на других платформах, включая Microsoft Windows (взаимодействует с Windows API ) и macOS (взаимодействует с Quartz ). Существует также серверная часть HTML5 под названием Broadway.

GTK можно настроить для изменения внешнего вида нарисованных виджетов; это делается с использованием различных механизмов отображения. Существует несколько механизмов отображения, которые пытаются имитировать внешний вид собственных виджетов на используемой платформе.

Начиная с версии 2.8, выпущенной в 2005 году, GTK начал переход от использования Cairo к рендерингу большинства своих графических элементов управления виджетов. Начиная с версии GTK 3.0, весь рендеринг выполняется с использованием Cairo.

26 января 2018 г. на DevConf.cz Маттиас Класен сделал обзор текущего состояния разработки GTK 4, включая подробное объяснение того, как рендеринг и ввод работали в GTK 3, какие изменения были внесены в GTK 4 (>3.90) и почему. В феврале было объявлено, что GTK 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. GtkInspector можно вызвать только после установки пакета разработки libgtk-3-dev / gtk + -devel.

Дизайнеры графического интерфейса

Есть несколько дизайнеров графического интерфейса для GTK. Следующие проекты активны по состоянию на июль 2011 года:

  • Glade, поддерживает GtkBuilder, который является встроенным в GTK форматом описания GUI.
  • , GUI Builder для GTK набор инструментов, написанный на Python
  • Crow Designer, опирается на собственный формат GuiXml и библиотеку GuiLoader.
  • Stetic, часть MonoDevelop, ориентированная на Gtk #.

GtkBuilder

GtkBuilder позволяет разрабатывать пользовательские интерфейсы без написания кода. Интерфейс описан в файле Extensible Markup Language (XML), который затем загружается во время выполнения, а объекты создаются автоматически. Дизайнер интерфейсов Glade позволяет создавать пользовательский интерфейс в стиле «что вы видите, то и получаете» (WYSIWYG ). Описание пользовательского интерфейса не зависит от используемого языка программирования.

Привязки языков

Библиотека, написанная на одном языке программирования, может использоваться на другом языке, если записаны привязки ; GTK имеет ряд привязок для различных языков.

Gtk #

Gtk #
Gtk Sharp Logo.png
Разработчик (и) Xamarin
Первоначальный выпуск12 марта 2004 г.; 16 лет назад (2004-03-12)
Стабильный выпуск 2.12.41 / 22 сентября 2016 г.; 4 года назад (22.09.2016)
Предварительный выпуск 2.99.3 (для GTK3) / 6 июня 2014 г.; 6 лет назад (06.06.2014)
Репозиторий Измените это на Wikidata
Написано наC#, XML, Perl, C
Операционная система Windows, macOS, Linux
Тип Набор инструментов для виджетов
Лицензия Стандартная общественная лицензия ограниченного применения GNU
Веб-сайтмонопроект.com / GtkSharp

Gtk # - это набор привязок .NET Framework для GTK графический пользовательский интерфейс (GUI) набор инструментов и различные GNOME библиотеки. Библиотека упрощает создание графических приложений GNOME с использованием Mono или любой другой совместимой Common Language Runtime (CLR). Gtk # - это система, управляемая событиями, как и любая другая современная оконная библиотека, где каждый виджет позволяет связывать методы-обработчики, которые вызываются при возникновении определенных событий.

Приложения, созданные с использованием Gtk #, будут работать на многих платформах, включая Linux, Windows и macOS. Пакеты Mono для Windows включают GTK, Gtk # и собственную тему, чтобы приложения выглядели как собственные приложения Windows. Начиная с Mono 1.9, для запуска приложений Gtk # на macOS больше не требуется запускать сервер X11.

Glade Interface Designer можно использовать с привязками Glade # для упрощения разработки приложений с графическим интерфейсом. Дизайнер графического интерфейса пользователя Stetic интегрирован с MonoDevelop интегрированной средой разработки (IDE).

Помимо поддержки стандартного стека инструментов разработки GTK / GNOME, сборка gtk-dotnet.dll обеспечивает мост для использования функций, доступных в стеке.NET. На данный момент это включает в себя возможность использования System.Drawing для рисования на виджете.

По состоянию на сентябрь 2020 года поддержка Gtk # для Gtk3 остается на стадии предварительной версии, и были созданы разветвленные проекты, такие как GtkSharp, чтобы обеспечить полную поддержку Gtk3 для C # и других языков интерфейса командной строки. Отсутствие выпущенной версии Gtk # с поддержкой Gtk3 было названо причиной для удаления медиаплеера Banshee в Ubuntu 12.04.

Разработка

GTK в основном разработан Проектом GNOME, который также разрабатывает платформу разработки GNOME и среду рабочего стола GNOME.

Разработка GTK осуществляется слабо. Обсуждение в основном происходит в нескольких публичных списках рассылки. Разработчики и пользователи GNOME собираются на ежегодную Европейскую конференцию пользователей и разработчиков GNOME GUADEC, чтобы обсудить текущее состояние и будущее GNOME. GNOME включает стандарты и программы из freedesktop.org для лучшего взаимодействия с другими рабочими столами.

GTK в основном написан на C. Доступно множество языковых привязок .

1 сентября 2016 года в блоге разработки GTK была опубликована запись, среди прочего, обозначавшая будущую схему нумерации GTK. GTK версии 3.22 с осени 2016 года будет последним выпуском 3.x. После этого все ресурсы будут перемещены в серию разработки GTK 4 с названиями версий 3.90, 3.92 и т. Д. Даже когда серия 4.x входит в разработку, известные приложения по-прежнему используют GTK 2.x и не были перенесены на 3.22. Что касается будущего устаревшего программного обеспечения с использованием GTK, нет коллективного проекта по переносу программного обеспечения GTK 2.x на версию 3.22.

Автоматизация сборки

В прежние времена GTK (и GNOME, GLib и т. Д.) Использовали GNU Build System (названную Autotools) в качестве автоматизации сборки система выбора.

С 14 августа 2017 года основная ветвь GTK строится с использованием Meson, а системные файлы сборки Autotools были удалены.

Критика

Наиболее частой критикой GTK является отсутствие обратной совместимости в основных обновлениях, в первую очередь в интерфейсе прикладного программирования (API) и тематике.

Нарушение совместимости между второстепенными выпусками во время GTK Бенджамин Отте объяснил, что цикл разработки 3.x вызван сильным давлением в отношении инноваций, таких как обеспечение функций, которых ожидают современные пользователи, и поддержка все более влиятельного протокола сервера отображения Wayland. С выпуском GTK 4 давление необходимости инноваций исчезнет, ​​и баланс между стабильностью и инновациями изменится в сторону стабильности. Точно так же недавние изменения в тематике специально предназначены для улучшения и стабилизации этой части API, а это означает, что некоторые вложения сейчас должны быть вознаграждены позже.

  • Дирк Хондел, разработчик кода Subsurface и член Центра технологий открытого исходного кода Intel, раскритиковал разработчиков GTK за резкость и игнорирование большинства запросов сообщества.
  • Хонг Джен Йи, разработчик LXDE (GTK-версия которого была удалена, а все усилия были сосредоточены на Qt port, выразил презрение к версии 3 радикальных изменений API инструментария GTK. и увеличено использование памяти, а также перенесен PCMan File Manager (PCManFM) на Qt. PCManFM разрабатывается с GTK и с бэкэндом Qt одновременно.
  • Музыкальный проигрыватель Audacious перемещен на Qt в версии 3.6. Причины, указанные разработчиками для этого, включают переход к оформлению окон на стороне клиента, который, по их утверждениям, заставляет приложение выглядеть "GNOME -y и неуместно. "
  • Wireshark переключился на Qt из-за отсутствия хорошего опыта работы с кроссплатформенной поддержкой GTK.

Используйте

Поддержка GTK для Wayland, co-r Приложения equisites также будут адаптированы к Wayland Снимок экрана GIMP 2.8 - GTK отвечает за управление компонентами интерфейса программы, включая меню, кнопки и поля ввода.

Приложения

Некоторые известные приложения, которые использовали или когда-то использовали GTK в качестве инструментария виджетов, включают:

Среды рабочего стола

Некоторые среды рабочего стола используют GTK в качестве инструментария виджетов.

Текущий

Phosh
  • 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
  • Access Linux Platform (преемник платформы Palm OS PDA )
  • Consort, резервный вариант GNOME 3.4 Mo de - fork из SolusOS
  • GPE, GPE Palmtop Environment
  • ROX Desktop, легкий рабочий стол с функциями из GUI из RISC OS

Разное

Программы GTK могут запускаться в среде рабочего стола на основе X11 и Wayland или оконных менеджеров, даже тех, которые созданы без GTK, при условии, что установлены необходимые библиотеки; это включает macOS, если установлено X11.app. GTK также можно запустить в Microsoft Windows, где он используется некоторыми популярными кроссплатформенными приложениями, такими как Pidgin и GIMP. wxWidgets, кроссплатформенный набор инструментов с графическим интерфейсом, использует GTK в Linux. Другие порты включают DirectFB (используется, например, установщиком Debian ) и ncurses.

Оконные менеджеры

Следующие оконные менеджеры используют GTK:

GtkSourceView

Для подсветки синтаксиса существует «виджет редактирования исходного кода». GtkSourceView поддерживается GNOME отдельно от GTK в виде библиотеки: gtksourceview. В планах переименовать в gsv.

GtkSpell

GtkSpell - это библиотека, отдельная от GTK. GtkSpell зависит от GTK и Enchant. Enchant - это оболочка для ispell, hunspell и т. Д., Фактического движка / программного обеспечения проверки орфографии. GtkSpell использует виджет GTK GtkTextView, чтобы выделить слова с ошибками и предложить замену.

Пример

Документация доступна здесь:

Следующий код представляет собой графическую программу GTK hello-world на языке программирования C. В этой программе есть окно с заголовком «Привет, мир!» и метку с аналогичным текстом.

// helloworld.c #include int main (int argc, char * argv) {GtkWidget * window; GtkWidget * label; gtk_init (argc, argv); / * Создать главное окно верхнего уровня * / window = gtk_window_new (GTK_WINDOW_TOPLEVEL); / * Присвойте ему название * / gtk_window_set_title (GTK_WINDOW (window), «Привет, мир!»); / * Центрировать окно * / gtk_window_set_position (GTK_WINDOW (окно), GTK_WIN_POS_CENTER); / * Устанавливаем размер окна по умолчанию * / gtk_window_set_default_size (GTK_WINDOW (window), 200, 100); / * ** Сопоставьте сигнал уничтожения окна с gtk_main_quit; ** Когда окно вот-вот будет уничтожено, мы получаем уведомление и ** останавливаем основной цикл GTK, возвращая 0 * / g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); / * ** Назначьте переменную label новой метке GTK ** с текстом «Hello, world!» * / label = gtk_label_new («Привет, мир!»); / * Наносим метку на главное окно * / gtk_container_add (GTK_CONTAINER (window), label); / * Убедитесь, что все, окно и метка, видны * / gtk_widget_show_all (window); / * ** Запустить основной цикл и ничего не делать (блокировать), пока ** приложение не будет закрыто * / gtk_main (); возврат 0; }

Необходимо сначала установить библиотеки в Debian или производных: $ sudo apt-get install libgtk-3-dev

Использование pkg-config в оболочка Unix, этот код можно скомпилировать с помощью следующей команды: $ cc -Wall `pkg-config --cflags gtk + -3.0` -o helloworld helloworld.c` pkg-config --libs gtk + -3.0`

Вызов программы: $./helloworld

History

Linux / Unix

GTK изначально был разработан и использовался в GNU Image Manipulation Программа (GIMP) как замена инструментария Motif ; в какой-то момент Питер Мэттис разочаровался в Motif и начал писать свой собственный инструментарий GUI под названием GIMP toolkit и успешно заменил Motif выпуском GIMP 0.60. Наконец, GTK был переписан в объектно-ориентированный и переименован в GTK +. Впервые это было использовано в версии 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 года во время Hackathon.

macOS

With Quartz -Backend GTK доступен в macOS.

Windows

  • После GTK 2.24.10 и 3.6.4 Разработка Windows с помощью установщика была закрыта Gnome. Установка MSYS2 в Windows - хороший способ использовать актуальный GTK.
  • GTK 2.24.10 и 3.6.4 доступны в Интернете, но содержат много ошибок и ограничены по сравнению с текущими версиями.
  • Версия для Windows 64-битная версия подготовлена ​​Томом Скунджансом с доступными версиями 2.24.32 (актуально, как Linux) и 3.22.30 (актуально, как Linux).
  • 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, однако этого так и не произошло. Последней версией GTK для OpenVMS является версия 1.2.10.

4.x

Одна из кардинальных новинок, реализованных в ходе цикла разработки GTK 4 (например, GTK 3.92 и т. Д.), Была делегирование функций вспомогательным объектам вместо кодирования их в базовые классы, предоставляемые GTK.

  • обработка событий от обработчиков сигналов, описываемых GtkWidget, делегируется контроллерам событий
  • рендеринг делегируется объектам GtkSnapshot
  • механизм макета из GtkWidget делегируется GtkLayoutManager

В 2018 -26 января на DevConf.cz Маттиас Класен дал обзор текущего состояния разработки GTK 4, включая подробное объяснение того, как рендеринг и ввод работали в GTK 3, какие изменения были внесены в GTK 4 и причины этих изменений. Также были приведены примеры того, что стало возможным с GTK 4.

Выпуски

История выпусков
Серия выпусковПервоначальный выпускОсновные улучшенияПоследняя дополнительная версия
GTK + 1
Старая версия, больше не поддерживается: 1.01998-04-13Первая стабильная версия1.0.6
Старая версия, больше не поддерживается: 1.21999-02-25Новые виджеты :
  • GtkFontSelector
  • GtkPacker
  • GtkItemFactory
  • GtkCTree
  • GtkInvisible
  • GtkCalendar
  • GtkLayout
  • GtkPlug
  • GtkSocket
1.2.10
Обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущая версия
GTK + 2
Старая версия, нет больше не поддерживается: 2.02002-03-11GObject

Общая поддержка UTF-8

2.0.9
Старая версия, больше не поддерживается: 2.22002-12-22Поддержка нескольких заголовков2.2.4
Старая версия v ersion, больше не поддерживается: 2.42004-03-16Новые виджеты:
  • GtkFileChooser
  • GtkComboBox
  • GtkComboBoxEntry
  • GtkExpander
  • GtkFontButton
  • GtkColorButton
2.4.14
Старая версия, больше не поддерживается: 2.62004-12-16Новые виджеты:
  • GtkIconView
  • GtkAboutDialog
  • GtkCellView

Последний, поддерживающий Windows 98 /Me

2.6.10
Старая версия, больше не поддерживается: 2.82005-08-13Большинство виджетов обрабатываются с помощью Cairo 2.8.20
Старая версия, больше не поддерживается: 2.102006-07-03Новые виджеты:
  • GtkStatusIcon
  • GtkAssistant
  • GtkLinkButton
  • GtkRecentChooser

Поддержка печати: GtkPrintOperation

2.10.14
Старая версия, больше не поддерживается: 2.122007-09-14GtkBuilder2.12.12
Старая версия, больше не поддерживается: 2.142008-09-04JPEG 2000 поддержка загрузки2.14.7
Старая версия ion, больше не поддерживается: 2.162009-03-13Новый виджет: GtkOrientable

Предупреждение Caps Lock при вводе пароля

Улучшения в GtkScale, GtkStatusIcon, GtkFileChooser

2.16.6
Старая версия, больше не поддерживается: 2.182009-09-23Новый виджет: GtkInfoBar

Улучшение выбора файлов, печать

Чтобы удалить большую часть необходимого IPC между приложением X11 и сервером X11, GDK переписывается (в основном Александром Ларссоном) для использования «окон на стороне клиента», т. Е. GdkWindow, который каждый виджет должен быть, теперь принадлежит клиенту

2.18.9
Старая версия, больше не поддерживается: 2.202010-03-23Новые виджеты:
  • GtkSpinner
  • GtkToolPalette
  • GtkOffscreenWindow

Улучшение выбора файлов, обработки клавиатуры, GDK

Данные самоанализа теперь включены в GTK

2.20.1
Старая версия, больше не поддерживается: 2.222010-09-23GdkPixbuf перемещен в отдельный модуль

Большинство чертежей GDK основаны на Cairo

Многие внутренние данные теперь являются частными и могут быть запечатаны при подготовке к GTK 3

2.22.1
Более старая версия, но все еще поддерживается: 2.242011-01-30Новый виджет: GtkComboBoxText

Серверная часть печати CUPS может отправлять задания печати в формате PDF

GtkBuilder получил поддержку текстовых тегов и кнопок инструментов меню, а также множество функций самоанализа. добавлены исправления аннотаций

Переход с GTK + 2.x на GTK + 3

2.24.32. (2018-01-08)
Условные обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск
GTK 3
Старая версия, больше не поддерживается: 3.02011-02 -10Разработка и проектирование выпуска инструментария GTK 3 началось в феврале 2009 года во время GTK Theming Hackfest в Дублине.
  • 9 апреля 2009 года был выпущен первый черновой вариант плана развития.

Завершена в основном Проект Ридли

  • попытка закрепить ral библиотеки, которые были внешними по отношению к GTK +
  • , включая libgnome, libgnomeui, libgnomeprint22, libgnomeprintui22, libglade, libgnomecanvas, libegg, libeel, gtkglextи libsexy

Весь рендеринг выполняется с использованием Cairo

GDK стал более независимым от X11

XInput2, API темы основан на каскадных таблицах стилей (CSS), что ухудшает достижимую производительность для 60 Гц частоты кадров

3.0.12
Старая версия, больше не поддерживается: 3.22011-09-25Новые виджеты:
  • GtkLockButton
  • GtkOverlay

Новое диалоговое окно выбора шрифта

Новые экспериментальные серверные части:

3.2.4
Старая версия, больше не поддерживается: 3.426-03-2012Поддержка меню в GtkApplication

Новый выбор цвета

Добавлена ​​поддержка сенсорных устройств

Добавлена ​​поддержка плавной прокрутки

GtkScrolledWindow будет выполнять кинетическую прокрутку с помощью сенсорных устройств

Улучшена поддержка macOS

Это первая версия GTK 3, которая хорошо работает в Windows

Бэкэнд Wayland обновлен до текущего Wayland версия

Поворотные кнопки получили новый вид

Доступность: переписана поддержка древовидного представления

Более полная поддержка тем CSS

3.4.4
Старая версия, больше не поддерживается: 3.62012-09-24Новые виджеты:
  • GtkSearchEntry
  • GtkMenuButton
  • GtkLevelBar

Кнопки вертикального вращения

CSS-анимация, размытие теней

Поддержка плавного затухания и переходов в темах

3.6.5
Старая версия, больше не поддерживается: 3.825.03.2013Стабильная поддержка Wayland 1.0

Поддержка сервера Broadwayd

Улучшенная тематика

Улучшенное управление геометрией

Улучшения сенсорного управления

Поддержка оконного менеджера для протокола синхронизации кадров ol

GdkFrameClock добавлен

3.8.9
Старая версия, больше не поддерживается: 3.102013-09-23Новые виджеты:
  • GtkHeaderBar
  • GtkPlacesSidebar
  • GtkStack
  • GtkStackSwitcher
  • GtkRevealer
  • GtkSearchBar
  • Поддержка GtkSearchBar
  • Wayland 1.2

    • максимизация
    • анимированные курсоры
    • несколько мониторов
    • настройки
    • пользовательские поверхности
    • кадровая синхронизация

    Добавлено:

    • оформление на стороне клиента
    • поддержка масштабируемого вывода на экранах с высоким разрешением
    • режим точной настройки для прокрутки

    Удалено:

    • поддержка протокола Motif DND
    • поддержка нескольких экранов на один дисплей
    • gdk_window_get_display
    • gtk_widget_push_composite_child

    Отрывные пункты меню, а также множество настроек GTK

    Современная модель рисования GTK

3.10. 9
Старая версия, больше не поддерживается: 3.122014-03-25Клиентские украшения

Поддержка Wayland 1.5

New w idget: GtkPopover (альтернатива меню и диалоговым окнам)

3.12.2
Старая версия, больше не поддерживается: 3.142014-09-22(копия gtkparasite) представил

Улучшена поддержка жестов /множественное касание объединено

Устарело :

  • GtkMisc
  • GtkAlignment
  • GtkArrow
  • GdkColor
  • Области стилей
  • поддержка файлов.icon
  • gdk_window_flush
  • рисование вне begin / end paint

Большинство виджетов, преобразованных для использования жестов внутри

Wayland поддерживает классический режим GNOME Shell

3.14.15
Старая версия, больше не поддерживается: 3.162015 -03-22GDK поддерживает рендеринг окон с использованием OpenGL для X11 и Wayland с использованием

Новые виджеты:

  • GtkGLArea
  • GtkStackSidebar
  • GtkModelButton
  • GtkPopoverMen 659>Пересмотрена прокрутка (полоса прокрутки по умолчанию скрыта)

    Экспериментальный Мир бэкэнд

3.16.7
Старая версия, больше не поддерживается: 3.182015-09-23Добавить инфраструктуру узла CSS

Больше обновлений дизайна выбора файлов и улучшенного поиска выбора файлов

Прекращена поддержка Windows XP

Поддержка модели для списка и потока box

Кинетическая прокрутка сенсорной панели

Жесты сенсорной панели (Wayland)

утилита gtk-builder-tool

Окна только для вывода

3.18.9
Старая версия, больше не поддерживается: 3.202016-03-21Дальнейшая интеграция узлов CSS

Переместите перетащите вниз до GDK

Новый виджет: GtkShortcutsWindow (показывает сочетания клавиш и жесты приложения)

3.20.10
Старая версия, но все еще поддерживается: 3.222016-09 -21Последний выпуск 3.x

Поддержка планшетов Wayland объединена, поддержка графических планшетов считается полной функцией

GTK 3.22 должна быть стабильной (и, следовательно, «скучно») как GTK 2

на 3+ года. 3.22.29
Текущая стабильная версия: 3.242018-09-033,22 предполагалось чтобы быть самой последней версией серии GTK 3

Удары зависимостей - требуется:

  • libepoxy 1.4
  • pango 1.41

Новые функции выбора шрифта:

  • разрешить установку функций шрифта OpenType
  • показать примеры функций шрифта OpenType
  • разрешить выбор вариантов шрифта OpenType
  • поддержка уровней детализации для выбора

Новые возможности Emoji:

  • поддержка всплывающего окна завершения для Emoji
  • drop Ctrl-Shift-e shortcut

Другие новые API: gdk_window_move_to_rect

Wayland: используйте анонимную разделяемую память на FreeBSD

Контроллеры событий с обратным переносом из GTK 4:

  • GtkEventControllerScroll
  • GtkEventControllerMotion
  • GtkEventControllerKey
  • <363ureStylGest65>Устарели некоторые API, отсутствующие в GTK 4:

    • цепочки фокуса в GtkContainer
    • чувствительность шагового двигателя в GtkRange
3.23.0. 3.23.1. 3.23.2. 3.23.3. 3.24.0. …3.24.5. 3.24.14
Обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущая версия
Серия разработки GTK 4
Старая версия, больше не поддерживается: 3.9031.03.2017GTK Scene Graph Kit (GSK) объединен

Удалите все API, помеченные как устаревшие

тяжелой разработки

  • break API ABI

Новый Vulkan -renderer дополняет старый Cairo -renderer

3.89.1.

3.89.2. 3.89.4. 3.89.5. 3.90

Старая версия, больше не поддерживается: 3.922017-10-18Как GNOME 3.26 была выпущена уже 13 сентября 2017 года, она не была основана на GTK 3.92.

GNU autotools был заменен на Meson.

3.91.0.

3.91.1. 3.91.2. 3.92.1

Старая версия, больше не поддерживается: 3.942018-06-263.93
  • GdkScreen, GdkVisual удалено
  • GdkDeviceManager заменено на GdkSeat
  • Буфер обмена обрабатывается перемещен из GTK в GDK
  • GdkEvent преобразуется в непрозрачный GObject
  • рендерер GL в GSK в основном завершен и теперь находится на одном уровне с рендерером Vulkan
  • в использовании of GdkPixbuf в API сокращается
    • , а объект GskTexture перемещается в GDK как GdkTexture, чтобы занять его место
  • , бэкэнд Wayland теперь реализует протокол оформления на стороне сервера KDE
  • Broadway перенесен на GSK.

GdkWindow переименовано в GdkSurface

Новая абстракция для содержимого, доступного для рисования: GdkPaintable

Поддерживается отображение мультимедиа с помощью:

  • GtkVideo
  • GtkMediaFile
  • GtkMediaStream
  • GtkMediaControls
3.93. 3.94.0
Старая версия, больше не поддерживается: 3.962019-05-07Команда gtk4-builder-toolsimpleifyполучила - 3to4опция для преобразования файлов пользовательского интерфейса GTK3 в GTK4; хотя с помощью AMTK меню, панели инструментов или другие объекты, такие как GtkShortcutsWindow, создаются программно (не с помощью файла *.ui), но с помощью удобных API.

GtkWidget теперь может использовать GtkLayoutManager для распределения размера

  • менеджеры макета могут дополнительно использовать макет дочерние элементы, хранящие свойства макета
  • GtkBinLayout, GtkBoxLayout, GtkGridLayout, GtkFixedLayout и GtkCustomLayout в настоящее время доступны
  • в будущем появятся другие реализации диспетчера макетов

Обработка фокуса была переписана, и изменение фокуса генерация событий была объединена с пересекающимися событиями

События были упрощены и используются только для ввода:

  • события expose были заменены на сигнал GdkSurface :: render
  • были сконфигурированы события заменен сигналом GdkSurface :: size-changed
  • события карты были заменены свойством GdkSurface :: mapped
  • gdk_event_handler_set был заменен сигналом GdkSurface :: event
  • ключевые события больше не содержат строка
  • события в несопоставленных виджетах игнорируются
3.96.0
Старая версия, больше не поддерживается: 3.982020-02-10
  • Улучшения производительности
  • Перетаскивание рефакторинг
  • Перемещение GDK к Wayland
  • Removals
    • GtkMenu, GtkToolbar и аналогичные классы были заменены на GMenu.
  • Дополнения
    • Выбор эмодзи
    • Текстовые виджеты теперь имеют стеки отмены
    • Новый менеджер компоновки
3.98.5
Последняя предварительная версия будущего выпуска: 3.99.02020-07-31
  • Представлен преемник Accessibility Toolkit (ATK). Новый подход будет реализовывать WAI-ARIA (Инициатива по обеспечению доступности Консорциума World Wide Web (W3C) - Доступные многофункциональные Интернет-приложения).
  • Обновлены заголовки для использования стандартных типов C, вставленных из GLib типы
  • Новые виджеты
  • Исправления и улучшения
3.99.2
Будущий выпуск: 4.0Осень 2020 г.Удалить все API отмечен как устаревший, т.е. по крайней мере все в устаревшем каталоге
Обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия версия Будущий выпуск

Команда GNOME регулярно выпускает новые версии.

См. также

  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • Client-Side Decoration
  • Список наборов инструментов для виджетов
  • GDK - GIMP Drawing Kit находится между xlib и библиотекой GTK, обрабатывая базовую визуализацию, такую ​​как примитивы рисования, растровая графика (растровые изображения), курсоры, шрифты, а также события окна и функция перетаскивания
  • gt kmm - привязки C ++ для GTK
  • Qt - кроссплатформенный фреймворк и инструментарий
  • Xojo - кроссплатформенный инструмент разработки и фреймворк
  • Enlightenment Foundation Libraries (EFL) - инструментарий виджетов, написанный для оконный менеджер Enlightenment
  • FLTK - легкий, кроссплатформенный, ненац ive widget toolkit
  • FOX toolkit - быстрый кроссплатформенный инструментарий виджетов с открытым исходным кодом
  • IUP - многоплатформенный набор инструментов для создания собственных графических интерфейсов пользователя
  • Ultimate ++
  • Visual Библиотека компонентов (VCL)

Ссылки

Библиография

Внешние ссылки

Викискладе есть носители, относящиеся к GTK.
Викибук X Window Programming имеет страницу по теме: GTK +

.

Последняя правка сделана 2021-05-21 09:30:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте