Qt софт не подхватывает темы gtk. Пикча. qt4-qtconfig стоит, выставлен gtk+. Установлены gtk2-engines-*, текущая тема имеет gtk2-версию. Убунта 16.04, гном 3.18.5. Куда копать?
2. Qt 4 приложения не тянут ICU на 30 МБ, а Qt 5 приложения тянут.
3. Простейшее Qt 4 приложение зависит от двух библиотек: QtGui и QtCore, приложение на Qt 5 — от четырёх: QtGui, QtWidgets, QtCore, и того плагина qxcb.so в platforms/, который лежит где-то в дебрях /usr. В общем случае двукнопочное Qt 4 приложение весит 9МБ, а Qt 5 — 19 МБ (если без ICU).
И у тебя ещё хватает смелости утверждать, что Qt 5 не жирнее? Да оно даже запускается в три раза медленнее, пока все эти библиотеки ICU и OpenGL в память развернутся.
А теперь выхлоп с грепом «GL» давай.
И вперёд пересобирать Qt 5 с -disable opengl
Только на винде, и то опционально.
Во всех популярных дистрибутивах.
Итого: Qt4 - 14.0M, Qt5 - 16.2M.
А где платформс-плагины? А поддержки форматов изображений? Попробуй переименуй /usr/lib/qt/plugins/platforms/libqxcb.so во что-нибудь другое и все твои Qt 5 приложения превратятся в тыкву.
Без бенчей - балабол. icu используют почти все проги, а значит он уже в ОЗУ.
Аксиомы не требуют доказательств. Если для тебя программа, использующая:
Ну и на сколько оно больше? В два раза больше? Какой ужас. Лишние 2МБ. При условии, что большая часть вообще не нужна. А если убрать плагин webengine - получим тоже, что и раньше.
Аксиомы не требуют доказательств. Если для тебя программа, использующая:
И что это должно доказать? То что прога на Qt линкуется с кучей либ и поэтому долго стартует? Ну ок, вот «Hello World» на GTK+3:
И в каждой теме про Qt или KDE эти фанатики, которые на дух не переносят критику любимого инструмента и считают его идеальным и неприкасаемым.
Научись понимать разницу между критикой и 4.2
А причём тут винда? Или если там разброд и шатание, то и в GNU/Linux оно тоже должно быть?
По сравнению с тем, что творится в винде - в GNU/Linux чистота и строгий порядок. Но никто же не бежит от Винды, пишут под неё софт, жуют кактус. А тут всего 2 популярных тулкита - и сразу разброд и шатание. При чём кроссплатформенных тулкита, а не завендорлоченная Cocoa. То что в GTK постоянно ломают API тем и совместимость с Qt - это ничего, но стоило немного поломать оформление Qt5-софта в GTK 3 - как у свидетелей Гнома бомбануло.
И тянет он GL вовсе не для создания окна. Ведь в Qt 4, GTK+3 и GTK+2 окно создаётся без всякой OpenGL'овской мишуры. Тянет он OpenGL приблизительно для этого: https://habrahabr.ru/post/272423/
И мы ещё забыли о нескольких библиотеках, от которых зависит ЛЮБОЕ приложение на Qt 5. Я про libQt5XcbQpa.so.5 и его зависимость libQt5DBus.so.5 как раз от этого самого плагина platforms/libqxcb.so :)
В два раза больше?
Да. Если использовать статическую линковку, то приложение на Qt 4 получается в два раза меньше, чем на Qt 5. Это, конечно, если не брать во внимание 30 МБ от ICU.
Ура! GTK+ прекрасен, ибо зависимостей от GL нет, значит всё ок.
Заметь, зависимости от ICU там тоже нет и при этом локализация нормально работает.
То что прога на Qt линкуется с кучей либ и поэтому долго стартует?
То что Qt 5 прога стартует дольше из-за большего количества зависимостей:
В этом треде мне пишут 4.2, а я опровергаю аргументами. А ты почему-то считаешь, что наоборот.
Очевидно, потому что розовые очки фанатика защищают тебя от здравого и трезвого взгляда на вещи. Надеюсь, хоть ты не будешь спорить о том, что Qt 5 более раздут в зависимостях в сравнении с Qt 4.
То что в GTK постоянно ломают API тем и совместимость с Qt - это ничего, но стоило немного поломать оформление Qt5-софта в GTK 3 - как у свидетелей Гнома бомбануло.
Ну вот видишь, получилось так, что оба тулкита ломают темы. А это плохо сказывается на юзабилити десктопного GNU/Linux, не так ли?
Очевидно, потому что розовые очки фанатика защищают тебя от здравого и трезвого взгляда на вещи. Надеюсь, хоть ты не будешь спорить о том, что Qt 5 более раздут в зависимостях в сравнении с Qt 4.
Не вижу в нём ничего раздутого. Кроме твоих ничем не обоснованных высеров.
А это плохо сказывается на юзабилити десктопного GNU/Linux, не так ли?
Не так ли. Я пользуюсь программами а не фапаю на их интерфейс или то, как отображается Qt-софт в GTK-окружениях. И наоборот.
Я про libQt5XcbQpa.so.5 и его зависимость libQt5DBus.so.5 как раз от этого самого плагина platforms/libqxcb.so
Конечно. Абстракции не нужны, иксы будут жить вечно. Да и поддержка платформ тоже никому не нужна - свет сошёлся клином на x11 и венде.
А вот то, что поддержка Wayland для галочки - нет нормальной кастомизации CSD (ни через переменные окружения, ни через конфиг-файл, ни как ещё нельзя заставить эти омерзительные синие рамки окошек выглядеть не так омерзительно) прискорбно.
Также если возжелать унифицированный look&feel для всей системы, то очень огорчает отсутствие плагина-платформы для рендеринга гуёв через gtk3.
Qt Creator в Wayland нормально работает только на третьегноме (на weston и большинстве других композиторов не работает автодополнение, в sway неадекватные вспомогательные окна). Приплыли. Гном и Qt - теперь лучшие друзья.
А это плохо сказывается на юзабилити десктопного GNU/Linux, не так ли?
То есть гнилой графический стек урезающий производительность рендеринга, ограничивающий поддержку железа (привет, multi-gpu) и заросший костылями - это норм. К чертям инфраструктуру - даёшь красивые кнопочки уже вчера!
Ведь в Qt 4, GTK+3 и GTK+2 окно создаётся без всякой OpenGL'овской мишуры.
Ок. Хорошо. Qt5 использует GL. В чём проблема? На что это влияет? На одну строку в ldd?
Простая проверка показывает, что этот самый GL дёргается только из QXcbWindow::create(). Всё. Это настолько страшно? Какие реальный проблемы это вызывает?
Я про libQt5XcbQpa.so.5 и его зависимость libQt5DBus.so.5 как раз от этого самого плагина platforms/libqxcb.so ЛЮБОЕ приложение на Qt 5 под Linux.
Fixed
И? Ну использует приложение DBus. GTK+ тоже использует. Как минимум для трея и глобального меню нужен dbus, без него никак. Вот и зависимости.
% du -h /usr/lib/libQt5XcbQpa.so.5.6.1
972K /usr/lib/libQt5XcbQpa.so.5.6.1
% du -h /usr/lib/libQt5DBus.so.5.6.1
524K /usr/lib/libQt5DBus.so.5.6.1
Полтора метра абстракций, какой ужас.
Заметь, зависимости от ICU там тоже нет и при этом локализация нормально работает.
И? Qt тоже можно собрать без icu и он тоже будет прекрасно работать.
А icu всё равно придётся использовать для маломальской работы с текcтом:
Почти весь серьезный софт использует libxml2, который зависит от icu.
То что Qt 5 прога стартует дольше из-за большего количества зависимостей:
Вы это вычислили по количеству либ? Замечательно. А я вот запустил valgrind, и посмотрел, что в проге с пустым QMainWindow _dl_runtime_resolve занимает 2.75% времени/инструкций. Сомневаюсь, что это катастрофически влияет за время запуска.
Не вижу в нём ничего раздутого. Кроме твоих ничем не обоснованных высеров.
Ну мои высеры вполне обоснованы выше. Размер бинаря увеличился? Увеличился. Размер всех подгружаемых библиотек увеличился? Увеличился в несколько раз. Появились либы, доступ к которым разрешается с помощью dlopen? — Появились. Деплой усложнился? Усложнился.
Любому адекватному человеку без фанатизма в голове понятно, что Qt 5 раздулся.
Я пользуюсь программами а не фапаю на их интерфейс или то, как отображается Qt-софт в GTK-окружениях.
И при этом плачешься насчёт поломанных тем в Firefox, который перешёл на GTK+3 и у которого внезапно сломался look-and-feel под KDE-окружениями.
А вот то, что поддержка Wayland для галочки - нет нормальной кастомизации CSD (ни через переменные окружения, ни через конфиг-файл, ни как ещё нельзя заставить эти омерзительные синие рамки окошек выглядеть не так омерзительно) прискорбно.
А всё почему? Потому что вместо доработки QtWayland параллельно пилится что? Правильно, KWayland!
Простая проверка показывает, что этот самый GL дёргается только из QXcbWindow::create(). Всё. Это настолько страшно? Какие реальный проблемы это вызывает?
А почему дёргается это ускорение? Ведь на других тулкитах никакой GL не дёргается, поскольку не используется. А в Qt 5 он не используется (QtOpenGL и QtQuick-приложения отбрасываем, там используется) и всё равно дёргается. Если машинка будет без GPU, то чтобы запустить ЛЮБОЕ Qt 5 приложение, придётся возиться со всякими программными эмуляторами GL типа mesa->llvmpipe или пересобирать Qt 5.
Полтора метра абстракций, какой ужас.
Там 1.5 метра, тут в два раза увеличилось, здесь 30 МБ icu и в итоге не раздулся?
Qt тоже можно собрать без icu и он тоже будет прекрасно работать.
Можно, но все собирают с icu, потому что лень править дефолтные флажки в скрипте конфигурации. Даже в винде. Миллионы мух не могут ошибаться, да.
Почти весь серьезный софт использует libxml2, который зависит от icu.
Вот не надо, libxml2 это маленькая библиотека и в дистрибутивах её собирают без громоздкого icu:
И при этом плачешься насчёт поломанных тем в Firefox, который перешёл на GTK+3 и у которого внезапно сломался look-and-feel под KDE-окружениями.
Да насрать мне на его look and feel. Фанатик здесь только ты. Вместо реальных аргументов приводишь какой-то детский лепет, который вообще никак не усложняет пользование программами людьми.
Любому адекватному человеку без фанатизма в голове понятно, что Qt 5 раздулся.
Прям GTK 3 - эталон минимализма. При том что ещё и затачивается под Гном.
А всё почему? Потому что вместо доработки QtWayland параллельно пилится что? Правильно, KWayland!
Он пилится для KDE, но может быть использован и другими приложениями. Что тут плохого?
Прям GTK 3 - эталон минимализма. При том что ещё и затачивается под Гном.
GTK+3 не такой раздутый, ибо никак не зависит от ICU и OpenGL.
При том что ещё и затачивается под Гном.
Вот это минус, конечно.
Он пилится для KDE, но может быть использован и другими приложениями. Что тут плохого?
Не вижу тут абсолютно ничего плохого. Проблема в другом: QtWayland практически не пилится.
который вообще никак не усложняет пользование программами людьми.
Ага. А Krita, я так понимаю, из-за избытка пользователей начала отказываться от раздутых и монструозных зависимостей KDE и переходить на KF 5 Tier Only. Уже как полгода перешла, а репутация программы с километровыми зависимостями за ней так и осталась. Обидно даже как-то.
Ага. А Krita, я так понимаю, из-за избытка пользователей начала отказываться от раздутых и монструозных зависимостей KDE и переходить на KF 5 Tier Only
Это и так естественный и логичный шаг. Тем более что Крита кроссплатформенна.
GTK+3 не такой раздутый, ибо никак не зависит от ICU и OpenGL.
У него других минусов тонна, а зависимость от ICU и OpenGL - преступление? Как это влияет на использование программы?
Там 1.5 метра, тут в два раза увеличилось, здесь 30 МБ icu и в итоге не раздулся?
У Qt 4 нет поддержки Wayland и вменяемого OpenGL. Qt Quick 1 тоже тот ещё подарочек. Классы коллекций сильно ускорились. Сигналы и слоты тоже были сильно улучшены.
Но нет. Продолжаем юзать устаревшее г мамонта. Там зависимости от icu нет.
Точно уже не скажу, но помню, что и с Qt4 и GTK2 бывали проблемы, если в нескольких местах настроить стиль/шрифты. Вплоть до того, что настройки в DE переставали работать, а такого быть просто не должно в нормально продуманной системе.
Обещали оптимизацию, почему стало больше ЖРАТ RAM и занимать памяти? Обещали разбить, чтобы было всё модульно. В итоге модули для приложения-кнопки стали весить (хорошо) на 30% больше, чем было изначально.
Вот как с тобой разговаривать? С начала ты утверждаешь: