Как распознать, что приложение работает в темной теме?

Я разработал приложение, которое использует qscintilla в качестве текстового редактора. Я также реализовал пользовательский лексер, чтобы выделить ключевые слова для конкретного языка. До сих пор стили для выделенных ключевых слов жестко закодированы в моем приложении, и это выглядит вполне нормально в теме по умолчанию для Windows / Linux (Ubuntu) / Mac.

Проблемы появляются, когда пользователь выбирает темную тему (в Linux). В зависимости от версии QScintilla некоторые части редактора отражают цвета текущей темы, а другие — нет. Более того, мои пользовательские стили отображают синие буквы на темно-сером фоне.

Я ищу какой-то класс Qt, который позволит мне получить доступ к текущей системной теме. Я не хочу определять стили для моих виджетов приложения.
Я хочу знать, что такое системный непропорциональный шрифт по умолчанию, каков его размер, цвет … Если бы я знал, что используется темная схема, я бы выбрал дополнительные цвета для выделения ключевых слов.

Я проверил документы для QStyle, QPlatformTheme и других классов qt, и мне кажется, что они больше служат для определения новых стилей, чем для описания текущего стиля.

1

Решение

Для системных цветов вы можете использовать группа / роль из QPalette учебный класс.

Для системных шрифтов вы можете создать QFont используя, например, «Serif», «Sans Serif», «Monospace» и т. Д. С соответствующим подсказка стиля обнаружить значения по умолчанию.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]