Комментарии 11
Вовсе она не забытая. Мы в своё время смотрели на неё но отказались. Очень слабенькая стилизация в очень небольшом диапазоне. Если дизайнеры просят что-то эдакое (а у нас именно что было очень эдакое для встраиваемых систем), то тут лучше QML ничего не придумали (полная свобода действий фактически). CSS, точнее его устаревшее подмножество QSS это отстой, согласен. Работали и с ним, потом отказались, ибо чтобы сделать что-то из ряда вон в нём, надо прям запариться
Туториалов по QStyle фактически нет, все используют QML или что-то другое. Ну, стилизация вовсе не слабая, можно же свой стиль придумать и подключить. Я собрал k4oxygen.so и подключил, всё заработало. Да, есть сложность в том, что стили (по душе) нужно искать и собирать, но в пакетных менеджерах есть уже собранные. Я согласен, что QML - это отличный инструмент для стилизации чего-то эдакого. Но для QML нужны время и дизайнерские способности. А тут сразу готовая база стилей.
Для кастомных интерфейсов виджеты на сегодня уже не актуальны, и не развиваются со времён Qt4, страшно сказать.
Дизайн в целом со времён Qt 4 (2006-2016) стал умирать. Причина- векторная графика. К примеру, Windows Aero - последняя версия Windows, в которой был дизайн (он растровый). В Windows 8.1 и Windows 10 дизайн векторный и меняется только цвет. Во времена Qt 4 даже установка драйвера на принтер с диска имела свой дизайн. Сейчас любое банковское приложение имеет один и тот же дизайн, меняется только цвет. Дизайн сейчас существует в основном на китайских Android-смартфонах: Xiaomi и т. д. Для Apple добавить шрифты в качестве выбора для пользователя, это целое событие.
и не развиваются со времён Qt4
С другой стороны, а что там развивать?
Вы просто немного поиграли со стилями, слово «шаблон» в контексте вашей статьи мне непонятно. Сразу хочется у вас спросить, а вы исходники Qt в той части где идёт работа с qss открывали?
В целом, поддержка css (qss) в Qt - это чистого вида натягивание совы на глобус. Причём в кулуарах одной из конференций мне довелось об этом поговорить с разработчиками. Просто в то время это был тренд и не было нормальных альтернатив для быстрого прототипирования стилизованных окон.
На текущем проекте (энтерпрайз, куча легаси) у нас обвязка, которая на основе json генерирует qss со всеми нужными стилями. И я задолбался подпирать костылями то, что где-то изначально упустили. Наиболее классическая ситуация - это когда разработчики виджетов не совсем аккуратно реализуют поддержку setFocus, setParent внутри каких либо обработчиков и повреждается внутренний кэш qstylesheet (там вектор указателей на QObject) - и в процессе смены стилей в лучшем случае всё дико тормозит, а в худшем - access violation из-за обращений к уже удалённым объектам.
Мой личный вывод - если вы всё ещё сидите на виджетах, то наследуйтесь от QStyle либо QProxyStyle и ручками, под каждую платформу, пилите нужный стиль. Программно, без всяких там qss. Будет намного более предсказуемо и быстро.
Тут цель статьи была в том, чтобы показать, что уже есть собранные стили Qt, которые легко подключить к проекту. Многие делают программы с ui вообще без стилизации или неделю тратят на создание аналога стиля из репозитория. Мне, конечно, понятно, что ручками лучше получится, но столько времени есть не у всех. А хороший дизайн программы, это вообще не всем по силам.
Ок. Вы показали как загрузить стиль. По сути вы описали два метода из документации по Qt - перечислить стили, установить стиль.
И да, заголовок про ненужность QML - слишком громкий. Можете на qss и виджетах сделать переливающийся фон у кнопки? На QML это пару строк кода и будет с большего делаться на GPU, на чистом qss вы не сделаете вообще никаких анимаций.
Да, я привёл пример с описанием. Туториалов по QML много, а про стили мало. Я не пробовал, но мне что-то подсказывает, что всё же это можно сделать в стилях .so. QML - это отличный инструмент для стилизации, я не спорю, я показал готовую альтернативу. Ясно, что ручками можно сделать всё, что угодно.
Такой путь выбрали в Dephi.
Но иметь выбор вариантов - стили или css (даже с костылями) лучше.

QML и CSS не нужны. Использование QStyle (QStyleFactory) для изменения дизайна Qt приложения с выбором для пользователя