Путевые заметки в процессе познания Python и PyQt/PySide.
Помни - только тег CODE не портит код добавлением пробела в начало пустой строки.
Помни - только тег CODE не портит код добавлением пробела в начало пустой строки.
К вопросу о применении таблиц стилей в PyQt-приложениях.
Запись от iamvic размещена 28.12.2023 в 23:25
Показов 2201
Комментарии 0
В документации как-то не особо акцентируется внимание на том, что приёмы нанесения боевой раскраски на элементы GUI можно разделить на два крайних случая.В первом случае, загрузка и установка всех таблиц стилей выполняется сразу после старта приложения и действие этих таблиц распространяется на все элементы GUI данного приложения. Как правило, в этом случае таблицы стилей хранятся в виде файлов типа *.qss, содержимое которых считывается и устанавливается как общая таблица стилей приложения. Для внесения изменений достаточно отредактировать существующий файл *.qss или добавить новый. Исполнительный код (*.py) или код дизайна (*.ui) трогать не потребуется. Во втором случае, установка таблиц стилей прописывается индивидуально для каждого виджета - либо в исполнительном коде *.py, либо в коде файлов дизайна *.ui. Вариант, когда таблица стилей в виде строковой константы прописывается в коде приложения и устанавливается как общая таблица стилей, отнесём ко второму случаю - ведь для внесения изменений всё равно придётся править код. На мой взгляд, преимущества первого варианта очевидны, поскольку позволяют выделить в команде разработчиков (даже если она состоит из одного человека ) отдельную производственную роль - роль стилиста. Он работает параллельно со всеми, у него свои задачи, он использует специализированные инструменты (CSS/QSS), позволяющие ему достучаться до любого виджета и свойства. Он может работать как по площадям, так и индивидуально. И нет никакой необходимости программисту или дизайнеру заниматься этим на своём уровне. Подготовленный специалист сделает эту работу лучше и быстрее.И, как обычно, обсудив достоинства первого варианта, надо обсудить недостатки второго . А главный недостаток второго варианта, по моему мнению, состоит в том, что он выносит окончательный диагноз. Т.е. установленные по этому варианту индивидуальные настройки нельзя изменить извне, например, добавив в код массовую установку таблиц стилей по первому варианту. И как бы стилист ни изгалялся, пытаясь изменить своими средствами что-то, уже настроенное в коде дизайнером или программером, у него ничего не получится.В качестве демонстрации использую аналог приложения из темы К вопросу о наследовании QWidget и таблицах стилей. позволяющий отключить закрытие окон от внешних источников, т.е. по щелчку ЛКМ на значке закрытия в полосе заголовка окна, выбора пункта "Закрыть Alt+F4" в выпадающем меню после щелчка ЛКМ по значку приложения в полосе заголовка и при нажатии комбинации клавиш Alt-F4: Файл style_probe.py (исполняемый код):
Файл style_probe.qss (общий):
Файл style_dialog2.qss (индивидуальный для диалога без заголовка):
На что следует обратить внимание: 1. если приложение запустить без параметра
2. если приложение запустить с параметром, например,
| |||||||||||||||||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии

на элементы GUI можно разделить на два крайних случая.

