Получить унаследованную таблицу стилей для QWidget от вышестоящих родителей

Есть ли простой способ получить унаследованную таблицу стилей для виджета, если таблицы стилей были установлены в его родителях (несколько уровней выше)? stylesheet() будет возвращать только локальное значение свойства.

Теоретически, чтобы получить текст эффективной таблицы стилей, я должен подойти к самому верхнему родителю, а затем объединить найденные стили в порядке их родительских элементов. Мне было интересно, есть ли более простой способ, библиотека УЖЕ делает то же самое. Проблема в том, что конкатенация не работает правильно с локальными таблицами стилей, в которых нет селектора.

QWidget::styleSheet() вернет только текст для конкретного виджета, если он установлен. Таблица стилей является результатом анализа синтаксиса этого текста, нужно ли мне создавать собственный анализатор таблицы стилей, который должен воссоздать способ работы Qt?


person Swift - Friday Pie    schedule 01.08.2017    source источник


Ответы (1)


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

person Swift - Friday Pie    schedule 24.05.2019