The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен графический тулкит GTK 4.20

29.08.2025 23:01

После шести месяцев разработки опубликован релиз многоплатформенного тулкита для создания графического интерфейса пользователя - GTK 4.20. GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.

Среди заметных улучшений в GTK 4.20:

  • Для поддержки методов ввода задействован Wayland-протокол text-input. Для работы с композитными серверами без поддержи данного протокола можно вручную выставить переменную окружения "GTK_IM_MODULE=simple", возвращающую поддержку стиле X11 compose-последовательностей и клавиш для ввода диакритических знаков.
  • Добавлена поддержка Wayland-протокола wl_seat_v10 и обработки на стороне сервера событий повторного нажатия, генерируемых при удержании клавиши.
  • При использовании Wayland добавлена поддержка обработки ограничений операций с краями поверхности верхнего уровня (xdg-toplevel edge constraint). Возможность позволяет композитному менеджеру информировать Wayland-клиентов об имеющихся ограничениях, например, о том, могут ли окна изменять свои размеры или нет.
  • Добавлена поддержка Wayland-протокола "tablet-v2" для организации ввода с графических планшетов.
  • Улучшена обработка прокрутки при использовании Wayland.
  • Для привязки пиктограммы к окнам задействован Wayland-протокол xdg-toplevel-icon.
  • Проведена чистка и упрощение всех символьных пиктограмм и ресурсов тем оформления, которые теперь могут быть обработаны встроенным парсером формата SVG. Прекращена поставка символьных пиктограмм и ресурсов тем в формате PNG.
  • Расширены возможности по созданию тем оформления на базе CSS. Добавлена поддержка медиа-запросов для цветовой схемы. Реализована функция light-dark(). Улучшена настройка градиентов. Переработан код для отображения тени для текста.
  • Улучшена обработка полей ввода паролей с учётом средств для людей с ограниченными возможностями.
  • Реализована возможность вызова приложения gnome-papers для предпросмотра вывода на печать. Добавлена поддержка xdg-портала для организации вывода на печать.
  • В утилиты для разработчиков добавлены компоненты для автодополнения ввода в bash. В утилиту gtk4-rendernode-tool добавлена опция "--offload". В утилите инспектирования обеспечен вывод информации об операционной системе и улучшена визуализация событий. В gtk4-path-tool добавлена поддержка показа пересечений путей и реализованы возможности для работы в интерактивном режиме. В gtk4-demo добавлены демонстрации "Path Explorer", "Sweep" и "Image Filtering".
  • В отладчик добавлена комбинация Super+F для сохранения одного кадра. Добавлена режим GTK_DEBUG=touch-ui для тестирования интерфейсов для сенсорных экранов.
  • В редактор CSS добавлены элементы для изменения цветовой схемы и контраста.
  • В библиотеке GSK (GTK Scene Kit), предоставляющей возможности отрисовки графических сцен через OpenGL и Vulkan, добавлен API gsk_path_foreach_intersection для вычисления пересечений путей. Улучшена отрисовка текста. Добавлены оптимизации производительности, например, реализован кэш масок для заливки. Предложены концепции загружаемых, не загружаемых и субсемплированных изображений.
  • В библиотеке GDK, предоставляющей прослойку между GTK и графической подсистемой, улучшена обработка изменения размера окон и добавлена поддержка относительных координат при работе с планшетами.
  • На платформе Android реализована корректная поддержка мультитач и начальная поддержка IME (Input Method Editor).
  • Для платформы Windows добавлен API для работы с текстурами через D3D12. Улучшена поддержка WGL. Задействованы D3D11/D3D12 и DirectComposition.
  • Добавлена поддержка многослойных форматов текстур.
  • В виджете GtkVideo реализована поддержка форматов YUV. Бэкенд gstreamer портирован на использование GskPlay. Улучшена поддержка форматов с субсемплингом. Добавлена поддержка программных декодеров для форматов с глубиной цвета 10, 12 и 16 бит.
  • Класс GtkApplication переведён на использование порталов xdg вместо обращения к менеджеру сеансов.
  • В класс GtkBuilder добавлена поддержка трансляции выражений с константами.
  • В классе GtkIconTheme разрешено перечёркивание символьных пиктограмм и добавлен парсер для SVG-файлов. В число обязательных зависимостей переведена библиотека librsvg.
  • Для работы теперь требуется поддержка wayland-protocols 1.44 и наличие расширений wl_output-v2 и xdg_output-v3.
  • Объявлены устаревшими бэкенд Broadway (отрисовка в окне web-браузера), API Pixbuf, свойство GtkApplication:register-session и настройка gtk-application-prefer-dark.


  1. Главная ссылка к новости (https://gitlab.gnome.org/GNOME...)
  2. OpenNews: Доступен графический тулкит GTK 4.18
  3. OpenNews: Ardour прекратил поддержку сборки с GTK2 в пользу форка YTK
  4. OpenNews: Эксперимент по использованию AI для перевода приложения с GTK2 и OpenGL на GTK4 и Vulkan
  5. OpenNews: GTK перевёл бэкенд для X11 в разряд устаревших
  6. OpenNews: Инициатива по портированию Firеfox на GTK4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63795-gtk
Ключевые слова: gtk
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (62) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Bottle (?), 23:25, 29/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >GTK 4 развивается в рамках процесса разработки, который пытается предоставить разработчикам приложений стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке GTK.

    Жаль только это к самому гному не относится.

     
     
  • 2.20, Аноним (20), 09:37, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Настолько стабильный что гимп и ядро вот вот 3-ку осилил. До 4ки надо ещё постабилизировать пару десятилетий.
     
     
  • 3.46, Аноним (46), 12:47, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Потому что совершенно разные продукты почему-то называют одним именем "гтк" с разными циферками.
     
     
  • 4.47, Аноним (46), 12:48, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > разные продукты

    P.S. несовместимые между собой

     
     
  • 5.58, Аноним (58), 13:54, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Они такие разные, Она тарелочница а он Нефтемагнат.
     
     
  • 6.77, Аноним (77), 19:01, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По крайней мере она может не беспокоиться о том, что ему нужны её деньги.
     
  • 2.27, eugener (ok), 10:13, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Жаль только это к самому гному не относится

    Всё же проблема непонятна. Установили убунту LTS, установили нужные расширения для gnome shell — и 10 лет можно жить не волнуясь что расширения слетят.)

    Если же вам тяжело как разработчику расширений — то всё не так плохо, с каждой новой версией выпускается гайд что нужно поменять. Но менять нужно не всегда, например я одно из своих расширений слегка переделывал два раза — при переходе с gnome 3.32 на 3.36 и с 44 на 45. Т.е. расширение сделанное для gnome 3.36 без изменений работает в версиях от 3.36 до 44, а сделанное под 45 работают и в 48. Но другое пришлось менять чуть чаще, потому что лез во внутренние потроха gnome shell.

     
     
  • 3.49, Аноним (49), 13:21, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какие расширения надо поставить чтобы look and feel как Windows 98?
     
     
  • 4.54, No_Intel (?), 13:50, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Dash to Dock
     
     
  • 5.55, Аноним (58), 13:52, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Press Ctrl to Duck.
     
  • 5.57, No_Intel (?), 13:53, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    + ArcMenu
     
  • 5.81, eugener (ok), 22:48, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    dash to dock это для тех кто хочет док как в юнити.
    А тут, скорее, dash to panel, хотя оно больше на windows 7 похоже, нежели на 98.
     
     
  • 6.85, cepblu (?), 01:16, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    dash-to-panel очень гибкий, мне по нраву, что можно настроить переключение громкости в любом месте колесиком над панелью, нигде больше не видел, а так хоть под win xp кастомизируется, было бы желание
     
     
  • 7.88, Аноним (88), 09:30, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А как сделать чтобы в диалоговом окне сохранения, открытия файлов кнопка сохранить, открыть была в правом нижнем углу, а не в правом верхнем?
     
  • 3.82, Аноним (82), 23:49, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Достижение прям. А софт, написанный для windows 95 до сих пор работает на свежей Винде, не требуя переделок. Почему то в ядре блюдут обратную совместимость, а эти летят вперёд и на других плевать.
     
     
  • 4.87, Аноним (87), 03:31, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Лол это в ядре то обратная совместимость? В линуксе?
     
  • 4.89, Аноним (88), 09:31, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да казалось бы. Windows 98, но многие современные СРС не могут достигнуть.
     
     
  • 5.92, Аноним (92), 20:43, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это осилил даже fluxbox, причем сделал это круче, чем в win98. Не говоря уже о TDE, EDE и тд.
     
  • 2.42, Аноним (42), 12:02, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://ubuntu.com/download/desktop
     
     
  • 3.56, Аноним (58), 13:53, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,w_182/https%3A%2F%2Fassets.ubuntu.com%2Fv1%2F3b5fa561-mascot-numbat%402x.png

    Король.jpg

     

  • 1.2, Аноним (2), 00:05, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    > стабильный и поддерживаемый в течение нескольких лет API

    хорошо хоть не в течении нескольких месяцев...

     
     
  • 2.48, Аноним (46), 12:51, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Разработка серьёзного продукта - до трёх лет (за это время ось пишут или ААА-игру). Тулкит, который мрёт за неск-ко лет - никто в здравом уме использовать не будет. Потому-то сейчас начали плодиться проги под линь в виде хром-контейнера с хтмл-ками.
     
  • 2.52, Аноним (49), 13:27, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мне одному кажется что API не должно меняться десятилетиями? Неужели у тойже винды или макоси API меняется каждые полгода?
     
     
  • 3.68, Аноним (46), 15:32, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    именно поэтому у винды 99% рынка
     
  • 3.70, Аноним (58), 16:20, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мне одному кажется что API не должно меняться десятилетиями? Неужели у тойже винды или макоси API меняется каждые полгода?

    Нет тебе не одному кажется, представь если бы правила дорожного движения менялись бы каждый день.

    Это просто по нормальному не могут сделать, и придумывают движки, API, GUI, Software, если хочешь называть это так.
    Меняется лишь название.

    Так же как с x11, Wayland.
    Как не назови.
    Это либо нормальное либо нет.

     
  • 3.79, Аноним (79), 21:16, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сабж поддерживает Windows
     

  • 1.3, Аноним (3), 00:40, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Объявлены устаревшими [..] API Pixbuf

    А что на замену?

     
     
  • 2.4, Андрей (??), 01:08, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    GdkPaintable, GdkTexture и Glycin
     
     
  • 3.10, Анонимусиус (?), 05:10, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Да, разрабам GTK Глицин не помешает
     
     
  • 4.76, Аноним (58), 18:22, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Глицин, хорошая штука.
     

  • 1.6, Аноним (6), 01:53, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    4.20, кодовое имя blazing chalice, если вы понимаете о чём я.
     
     
  • 2.12, Урапатриот (?), 07:20, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А о чем вы?
     
     
  • 3.72, Аноним (6), 16:36, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут, как говорится, если надо объяснять, то не надо объяснять. Но кто-то понял, сразу видно, человек наш, спасибо ему.
     
  • 2.17, Аноним (17), 09:13, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кто-то понял о чём он?
     
     
  • 3.21, Аноним (20), 09:40, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это вайб-коммент.
     
  • 3.29, Аноним (29), 10:21, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > кто-то понял о чём он?

    Что-то связанное с бурбуляторами, кто их разберёт.

     
  • 3.40, Мемоним (?), 11:33, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Абсент?
     
  • 3.78, DasKolbass (?), 19:27, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Он хотел сказать что он поклонник GTK+. Как из рассказа Ширвиндта:
    - Ви тот, о ком я думаю?
    - Да.
    - Тогда знайте, я - ваш кумир!
     
  • 2.33, Аноним (33), 10:35, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А о чём ты, чувак?
     
  • 2.35, Аноним (33), 10:39, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вспоминается фильм "Мы - Миллеры". Там тоже есть персонаж с этой фразой: "если вы понимаете о чем я"
     
  • 2.59, Аноним (58), 13:55, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > если мы понимаем о чём Ты.
     

  • 1.22, Аноним (22), 09:44, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > стабильный и поддерживаемый в течение нескольких лет API,

    Сколько точно? 1,5 года?!

    > который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API

    1,5 года можно не опасаться? Вот спасибо, услужили!

     
     
  • 2.25, Аноним (29), 10:05, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В мире гтк есть только гном. Это стек корпораций и в интересах корпораций, чего ты хотел.
     
  • 2.26, Аноним (20), 10:05, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ломают обратную совместимость чтобы гордо заявить о временной поддержке старого API.
    Как-будто в новых версиях появляются какие-то неведомые контролы и кнопки, требующие дивных новых парадигм.
     
     
  • 3.28, Аноним (29), 10:19, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Стой совместимости стоит денег. И это даже не плюсы, так что довольно больно, как видится. А вот прибитость к mesa уже не раз аукнулась, последний раз я об этом слышал, там был принудительный implicit sync зашит основательно, в то время как nvidia уже сделала современный explicit sync, как на венде.
     
     
  • 4.32, Аноним (20), 10:35, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Можно просто не трогать старый интерфейс. Но нет, надо же понаделывать разные ветки одного кодбейса, а потом накатывать одно изменения многократно, помноженное на кол-во веток. Иначе как с корпов за саппорт-то стричь?!
     
     
  • 5.39, Аноним (29), 10:50, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что значит "не трогать"? Его регулярно перепахивают. То сишные движки заменяют на js, то переписывают всё на css, то вкорячивают порталы и прочие костыли для флатпака.
     
     
  • 6.66, Аноним (20), 15:20, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Значит сохранить старый интерфейс/API. Что там под капотом без разницы.
     
     
  • 7.75, Аноним (29), 17:29, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Значит сохранить старый интерфейс/API. Что там под капотом без разницы.

    Не может быть тем же, переписывают как раз чтобы дропнуть неудачные решения. Разработчики обязаны адаптироваться. Если добавлять слой совместимости, то это в любом случае только временное решение. Но, к счастью, ни один проприетарный продукт на гтк больше никогда не завяжется никаким образом, а значит, могут позволить переписывать с нуля хоть каждые 3 месяца (чем и занимаются).

     

  • 1.41, Аноним (41), 11:44, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то использовал Broadway - удобная штука...
     
  • 1.45, Аноним (46), 12:44, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для поддержки методов ввода

    Это головная боль в Вяленом. Ведь сторонняя программа (ввода) с собственным гуем не может обработать нажатия кнопок для другой программы.

     
  • 1.53, Аноним (49), 13:29, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мне одному кажется, что если менять API раз полгода это вредительство.
     
     
  • 2.60, No_Intel (?), 13:57, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А куда девать новые наработки?
     
     
  • 3.62, Аноним (49), 14:04, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Держать в себе, сдерживаться. Что там такого принципиально нового можно добавить в API, кроме перестановки кроватей?
     
  • 3.67, Аноним (46), 15:30, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > новые наработки

    что именно нового изобрели?

     
  • 3.91, _kp (ok), 19:51, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот, вот. Из за такой нестабильности, мы уже пару лет прекратили писать нативные версии нашего ПО для Линукс, возни много, багов много и не вовремя, а в Wine отлично работает, причем на любом дистрибутиве, в том числе на смартфонах.
    А гонка ради "пустой новизны" на Линукс она везде, это его фича. Особенно неприятно когда кроссплатформенные библиотеки на Линукс кривые, а виндусовые в Wine работают. Это и было последней каплей, для сворачивания разработки.
    С новизной меру надо знать.
     

  • 1.61, Аноним (61), 14:03, 30/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    "стабильный и поддерживаемый в течение нескольких лет API, который можно использовать не опасаясь, что каждые полгода придётся переделывать приложения из-за изменения API в очередной ветке" - где-то заплакали тысячи 1с-ников, в мире которых LTS поддержка - этот 1 год.
     
     
  • 2.63, Аноним (49), 14:05, 30/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Серьезно что ли? А то ч в 1сники думал податься
     
  • 2.83, Аноним (58), 00:47, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Большие версии Gtk2, Gtk3, Gtk4, ломают совместимость так, что приходится портировать кучу кода.
    А вот у Qt наоборот, у них строгий LTS и ABI. Код написанный под Qt5, в большинстве случаев собирается и работает даже через несколько лет без переписывания.
     
     
  • 3.84, an2 (?), 01:03, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если начинать с Gtk2, то надо сравнивать с Qt3, Qt4, Qt5, Qt6.
     
  • 3.86, cepblu (?), 01:22, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    gtk3 спокойно работает, до сих пор софт ваяют, а gtk2 из нулевых годов, люди, пользовашие его уже на пенсию вышли
    между qt5 и qt6  совместимость дай б-г 20%, кому вы намазываете, qt3 и qt4 вообще никак с  последущими не совмещаются, а они оба уже после выхода gtk3 появились, так что вы лукавите, сударь, ой лукавите
     
  • 3.90, Аноним (46), 11:13, 31/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > у Qt наоборот, у них строгий LTS и ABI.

    Да-да, строгий... Работал с 5-ым кутэ, смотрю - 65-я версия MOC... Если версия MOC в системе и приложении не совпадает - приложение падает.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру