LINUX.ORG.RU

GTK 4.22

 , ,


0

4

В преддверии выхода GNOME 50, который ожидается менее, чем через две недели, сегодня вышла новая стабильная версия библиотеки графических интерфейсов пользователя GTK.

Основные исправления GTK 4.22:

  • Исправления Drag-and-Drop (DnD):
    • Устранена регрессия, из-за которой сигнал ::leave у виджета DropTarget больше не отправлялся по завершении операции сброса (#8037, Matthias Clasen).
  • Корректировки в демонстрационных приложениях:
    • Демонстрационные программы больше не оставляют после себя файл «foo.png» в текущей папке при запуске (#8080, Marco Trevisan).
    • Исправлена логика завершения работы демо-приложений, чтобы избежать возврата из main() благодаря корректной работе GApplication.quit (!9428, Florian «sp1rit»).
  • Платформозависимые улучшения:
    • Windows: Убран глобальный счетчик блокировок (inhibition counter) для улучшения стабильности (!9455, g.willems).
    • Wayland: Улучшена надежность обработки переменной окружения WAYLAND_SOCKET (!9547, Jonas Ådahl). Также исправлена утечка памяти, связанная со свойствами доступности (a11y) в ToplevelWayland(!9560, Maximiliano Sandoval)
  • Работа с SVG:
    • Расширены условия определяющие текущий режим работы - атрибут gtk:states (!9564), добавлены имена состояний (!9565).
    • Добавлена возможность сброса значений атрибутов (!9553).
    • Удалены некоторые устаревшие API (!9563) (Matthias Clasen).
  • Обновления переводов:
    • Болгарский (Alexander Shopov)
    • Грузинский (Ekaterine Papava)
    • Венгерский (Balázs Úr).
    • Японский (Makoto Sakaguchi)
    • Корейский (Changwoo Ryu)
    • Португальский (Hugo Carvalho)
  • Прочее:
    • Исправлена документация для AccessibleHypertext (!9558, Jamie Gravendeel).
    • В GtkCheckButton для «специальных возможностей» теперь используется корректная метка, а не «сырой» текст (!9575, Lukáš Tyrychtr).
    • Набор иконок обновлен из репозитория разработчика (development kit) для поддержания актуальности визуальных элементов (!9576, Jakub Steiner).

>>> Скачать

>>> Phoronix

★★★★★

Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 5)

Такое впечатление, что с каждым новым релизом выглядит всё хуже и хуже, скоро будет вообще как веб-интерфейс.

Hangover
()
Ответ на: комментарий от Hangover

Такое впечатление, что с каждым новым релизом выглядит всё хуже и хуже, скоро будет вообще как веб-интерфейс.

выглядеть то будет, но работать будет хуже

рекомендованный gtk_hello настолько растолстел, что сам по себе выглядит как отдельный фреймворк. Раньше Gtk привлекал своей простотой - вхаркодил виджетов, указал сигналы, gtk_main() и всех делов для простого приклада. 1 (один!!) сцуко файл и всё

современный gtk_hello_word со всеми рекомендуемыми действиями (файлами,стилями и приседаниями), будет потолще чем WinHello виндовс 3.11. Раньше было сильно-сильно наоборот, потому gtk и взлетел

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Раньше Gtk привлекал своей простотой - вхаркодил виджетов, указал сигналы, gtk_main() и всех делов для простого приклада. 1 (один!!) сцуко файл и всё

Во времена GTK2? Или в 3-м тоже так можно было?

hobbit ★★★★★
()

Оценить это я не могу. Возможно, какой-то смысл в таком интерфейсе имеется, но мне это неведомо.

nawier
()
Ответ на: комментарий от hobbit

В 3м тоже можно до сих пор, даже во времена 3.24.

Athor ★★
()

Исправления

Корректировки

улучшения

Это всё неважно. Что и где опять сломали?

CrX ★★★★★
()

Я не знаю, как реагировать на такие новости, поскольку Glade они выкинули на помойку, а пытаться писать красивые интерфейсы XML-ем в виме осточертело.

GFORGX ★★★
()
Ответ на: комментарий от GFORGX

Я не знаю, как реагировать на такие новости, поскольку Glade они выкинули на помойку, а пытаться писать красивые интерфейсы XML-ем в виме осточертело.

Значит пиши не XML'ем, а по старинке - ручками, button за button, label за label.

windows10 ★★★★★
()
Ответ на: комментарий от MKuznetsov

рекомендованный gtk_hello настолько растолстел, что сам по себе выглядит как отдельный фреймворк. Раньше Gtk привлекал своей простотой - вхаркодил виджетов, указал сигналы, gtk_main() и всех делов для простого приклада. 1 (один!!) сцуко файл и всё

современный gtk_hello_word со всеми рекомендуемыми действиями (файлами,стилями и приседаниями), будет потолще чем WinHello виндовс 3.11. Раньше было сильно-сильно наоборот, потому gtk и взлетел

Я бы так не сказал. Ты можешь программить интерфейсы как старым способом так и новым.

Просто твой способ «вхардкодил виджетов» работает для пары кнопок и пары действий типа ФМа. А если нужен какой нибудь интерфейс типа 3D-Max'а - то ты запаришься запоминать и отличать какой gtk_label для какого gtk_box для какого gtk_dialog у тебя в коде. Оно ведь тоже иерархично.

windows10 ★★★★★
()
Ответ на: комментарий от firkax

А как должен выглядеть UI? Именно благодаря HTML можно создавать гибкое UI так как тебе нужно, а не пердолиться со стандартной библиотекой десктопного UI, пытаясь засунуть в 1.5 виджета из 90-х годов современные требования к UI/UX на 4к экране.

foror ★★★★★
()
Ответ на: комментарий от foror

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

Заодно сломать консистентность, управление и совместимость.

Dr64h ★★★★
()
Ответ на: комментарий от GFORGX

пытаться писать красивые интерфейсы XML-ем

Брось каку.

Dr64h ★★★★
()
Ответ на: комментарий от Hangover

что не нравится? вроде прилично выглядит, за исключением конечно конских размеров заголовков, можно было и адаптировать для небольших экранов.

ЗЫЖ мне тут одному пофиг на эти тулкиты и прочие заморчки?

err
()
Ответ на: комментарий от foror

Я как раз против того, чтобы GUI превращали в нечто инородное и кривое, как Steam например. В идеале интерфейс должен быть с системным оформление по умолчанию, а шкурки можешь отдельно сам натягивать какие хочешь.

Dr64h ★★★★
()
Ответ на: комментарий от Dr64h

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

мути машину времени, я в деле :)

err
()

GTK меняет бренд: GIMP-ToolKit -> GNOME-ToolKit

sunjob ★★★★★
()
Ответ на: комментарий от MKuznetsov

gtk_main вроде пока еще можно, но когда начинаешь в приложение интегрировать всякое, то быстро понимаешь что проще делать руками

вообще обертки надо использовать, например C++, тогда жизнь становится проще

Reset ★★★★★
()
Ответ на: комментарий от GFORGX

и правильно, все равно он кривым был, вообще эта проблема уже неактуальна, сейчас нейронка прям в коде любой ui нарисовать сможет

Reset ★★★★★
()
Ответ на: комментарий от windows10

Я прошу прощения, а есть софт на GTK, ну кроме гимпа, который отвечает требованиям уровня «типа 3D-Max»? Просто потому что если примеров только гимп, то это и выглядит ровно как «вхардкодил виджетов».

Dispetcher14 ★★★★★
()

В преддверии выхода GNOME 50

йопрст, это ж и мне скоро 50…

Gonzo ★★★★★
()

P.S. На картинке головоломка, которую я никак не могу пройти, сколько ни пробовал :(

Gonzo ★★★★★
()
Ответ на: комментарий от splinter

Inkscape туда же, а Wireshark разве не на Qt?

Я к тому, что как-то нет запроса на футы-нуты продвинутые сложные интерфейсы, вызывает вопросы, почему…

Dispetcher14 ★★★★★
()
Ответ на: комментарий от splinter

Вы не подумайте, мне GTK по смыслу и духу ближе чем Qt, но даже в 2026 году есть ощущение, что опенсорсу не столько программистов не хватает, сколько нескольких нормальных дизайнеров.

Dispetcher14 ★★★★★
()
Ответ на: комментарий от windows10

Значит пиши не XML’ем, а по старинке - ручками, button за button, label за label.

Описывать layout на Си - это вообще цирк :) Пробовал, успешно, но больше не хочу.

GFORGX ★★★
()
Последнее исправление: GFORGX (всего исправлений: 1)
Ответ на: комментарий от kneedeep

А Blueprint не подходит?

Не знал, спасибо. Выглядит похоже на QML.

Но все же грустно, что заброшен формально аналог Qt Designer, а попытки все это оживить под видом Cambalache (и еще на что-то натыкался) - они как-то сбоку от самого официального GTK+.

GFORGX ★★★
()

Единственный свободный кроссплатформенный неблоатварный ui тулкит

Reset ★★★★★
()
Ответ на: комментарий от Dispetcher14

Я прошу прощения, а есть софт на GTK, ну кроме гимпа, который отвечает требованиям уровня «типа 3D-Max»? Просто потому что если примеров только гимп, то это и выглядит ровно как «вхардкодил виджетов».

Рукалицо. Какие «требования» ? Речь идет о сложности построения многоуровневых интерфейсов. Если делать это прямо в коде - то код начинает распухать, а мейнтейнеры теряться, какая функция отвечает за какой уровень вложенности, потому что за этой вложенностью нужно следить вручную, и дублировать рутинные функции для каждого элемента.

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

Теперь что касаемо примеров.

1. https://ardour.org/images/7-5.png

Попробуй вот это набросать прямо в коде. По моему опыту, это будет несколько тысяч строк только с gtk_box_new -> gtk_button_new -> gtk_image_new_from_file только на рисование. Еще столько же на назначение сигналов каждому элементу, ведь нам нужно не только отобразить кнопку, а еще и обработать наведение на нее, нажатие на нее, отпускание нажатия на нее, привязать функции и тд итп.

2. Выглядеть гимп может как угодно всрато, это вопрос к дизайнерам, а не программистам. А вот интерфейс разметить в коде - это другой коленкор, и очень плохая идея рисовать его функциями. Вот как выглядит одна из менюх гимпа: https://ibb.co/cKrD661q

windows10 ★★★★★
()
Ответ на: комментарий от Reset

Единственный свободный кроссплатформенный неблоатварный ui тулкит

Ога. С прибитой адвайтой вне зависимости от используемой темы))

windows10 ★★★★★
()
Ответ на: комментарий от Reset

неблоатварный ui тулкит

А тут целиком согласен.

GFORGX ★★★
()

Демонстрационные программы больше не оставляют после себя файл «foo.png» в текущей папке при запуске

Что? Как это не выловили на первом же тестировании?

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

Так вот как добрались до первого тестирования так и заметили.

firkax ★★★★★
()
Ответ на: комментарий от windows10

по старинке - ручками, button за button, label за label.

Так тогда модель должна быть как в Tk, но нет.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от foror

А как должен выглядеть UI? Именно благодаря HTML можно создавать гибкое UI

Смотри, любой офисный пакет, только нормальный типа либры: UI - это то, что ВОКРУГ листа, с какого мухомора его пишут ВНУТРИ листа - сие тайна великая есть.

Shadow ★★★★★
()
Ответ на: комментарий от windows10

А вот интерфейс разметить в коде - это другой коленкор,

Со времён VCL ничем не страшнее этого XML, а так как это не XML, то гораздо лучше. Да даже этот ваш веб UI перешёл на jsx всякий (что похоже на разметку в коде).

это будет несколько тысяч строк только с gtk_box_new -> gtk_button_new -> gtk_image_new_from_file

И тут внезапно врывается ООП без этих выдуманных болей сумасшедших гномеров.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от Shadow

И тут внезапно врывается ООП без этих выдуманных болей сумасшедших гномеров.

Во-первых, в либах его нет.

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

Ну был gtk_box_new(как, спейс), станет gtk_box->new(как, спейс).

Со времён VCL ничем не страшнее этого XML, а так как это не XML, то гораздо лучше. Да даже этот ваш веб UI перешёл на jsx всякий (что похоже на разметку в коде).

Переходить можно хоть на китайский, суть в том что интерфейс должен строиться отдельно, а код отдельно. Ну и для удобства восприятия желательно чтобы у этого китайского были блочные теги - <блок открылся> чото в блоке </блок закрылся>

Так тогда модель должна быть как в Tk, но нет.

GTK не развивался «по плану», в котором можно было учесть модель на этапе проектирования. Оно росло шаг за шагом, поэтому модель здесь такая уж как есть.

windows10 ★★★★★
()
Последнее исправление: windows10 (всего исправлений: 1)

Мёртвый фреймворк, гномосеки его убили.

Skullnet ★★★★★
()
Ответ на: комментарий от windows10

были блочные теги - <блок открылся> чото в блоке </блок закрылся>

Чтобы что? Любая struct состоящая из чайлдов со ссылками на свойства и на «методы» будет ок. А для блоков в Цэ удобно использовать { и }. Более того, практика показала, что даже человеки легче глазами парсят JSON и YAML, чем теги.

Shadow ★★★★★
()
Ответ на: комментарий от err

Разве не бросаются в глаза огромные квадратики с маленькими точками посредине? Только при внимательном рассмотрении замечаешь, что вот эта точка - это крестик, а вот эта точка - это три полосочки. При этом оставлено огромное бесхозное пространство заголовка окна. И так все. Сразу видно поработал «альтернативный дизайнер», не чтобы удобно было, а чтобы «я так вижу».

VIT ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.