QML и CSS не нужны. Использование QStyle (QStyleFactory) для изменения дизайна Qt приложения с выбором для пользователя
PVE-Vladimir 29 минут назад QML и CSS не нужны. Использование QStyle (QStyleFactory) для изменения дизайна Qt приложения с выбором для пользователя Простой 8 мин 676 Программирование * C++ * Qt * Текстовые редакторы и...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: PVE-Vladimir 29 минут назад QML и CSS не нужны. Использование QStyle (QStyleFactory) для изменения дизайна Qt приложения с выбором для пользователя Простой 8 мин 676 Программирование * C++ * Qt * Текстовые редакторы и IDE * Интерфейсы * Туториал В статье рассказывается о функционале, о котором забыли даже разработчики Qt. Дело в том, что этот функционал даёт уникальные возможности стилизации.
В отличие от QML и CSS, использование QStyleFactory позволяет предоставить пользователю широкий выбор QStyle-дизайнов виджетов без затрат времени на настройку QML и CSS. Я много раз видел, как программисты тратят много времени на настройку дизайна через QML и CSS, хотя в Qt 5 и Qt 6 есть база уже готовых дизайнов, которую никто не предоставляет пользователю в качестве выбора. Считаю необходимым рассказать об этом очень удобном и даже ленивом способе настройки дизайна.
Технические детали
Установка и запуск Шаблон QWidget (QStyleSelect) для быстрого и простого изменения дизайна приложения с возможностью выбора между стилями. Скачать, собрать и запустить исходный код примера:git clone mkdir -p QStyleSelect/build cd QStyleSelect/build cmake .. /QStyleSelect Установка стилей происходит через стандартный менеджер пакетов apt команды:apt search styl | grep "qt5" | awk -F'/' '{print $1}' | sed 's/Development.
*//g' | xargs sudo apt install -y apt search styl | grep "qt6" | awk -F'/' '{print $1}' | sed 's/Development. *//g' | xargs sudo apt install -y Установка происходит в директорию /usr/lib/x86_64-linux-gnu/qt5/plugins/styles/ или /usr/lib/x86_64-linux-gnu/qt6/plugins/styles/ Сюда же можно установить стиль, собранный из исходного кода. К примеру, я собирал и использовал в локальном профиле Qt вот этот стиль: file:///usr/local/Qt-6.
2/plugins/styles/k4oxygen. soРисунок 1 - Пример доступных стилей Qt Как работает технология QStyle (QStyleFactory) Установка стилей через QApplication не полностью поддерживается в Qt Creator. В руководстве Qt Creator сказано: «Внимание: в настоящее время таблицы стилей Qt не поддерживаются для пользовательских подклассов стилей QStyle.
Отраслевые последствия
Мы планируем решить эту проблему в одном из будущих релизов». Однако это не значит, что этот функционал не работает. Как сказано в руководстве, вы можете вызвать QApplication::setStyle() в любое время, но, вызвав его до конструктора, вы гарантируете, что предпочтения пользователя, установленные с помощью -style, будут учтены.
Пример использования:QApplication::setStyle(QStyleFactory::create("Fusion ; QStyleFactory создаёт объект QStyle с использованием функции create() и ключа, идентифицирующего стиль. Стили либо встроенные, либо динамически загружаются из плагина стилей. В общем, как выяснилось далее, функционал CustomStyle действительно не доработан до конца.
Однако мне удалось реализовать его для Qt5 полностью, а для Qt6 — частично. Всё равно считаю это хорошим результатом.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.






