Я разработал приложение, которое использует qscintilla в качестве текстового редактора. Я также реализовал пользовательский лексер, чтобы выделить ключевые слова для конкретного языка. До сих пор стили для выделенных ключевых слов жестко закодированы в моем приложении, и это выглядит вполне нормально в теме по умолчанию для Windows / Linux (Ubuntu) / Mac.
Проблемы появляются, когда пользователь выбирает темную тему (в Linux). В зависимости от версии QScintilla некоторые части редактора отражают цвета текущей темы, а другие — нет. Более того, мои пользовательские стили отображают синие буквы на темно-сером фоне.
Я ищу какой-то класс Qt, который позволит мне получить доступ к текущей системной теме. Я не хочу определять стили для моих виджетов приложения.
Я хочу знать, что такое системный непропорциональный шрифт по умолчанию, каков его размер, цвет … Если бы я знал, что используется темная схема, я бы выбрал дополнительные цвета для выделения ключевых слов.
Я проверил документы для QStyle, QPlatformTheme и других классов qt, и мне кажется, что они больше служат для определения новых стилей, чем для описания текущего стиля.
Для системных цветов вы можете использовать группа / роль из QPalette
учебный класс.
Для системных шрифтов вы можете создать QFont
используя, например, «Serif», «Sans Serif», «Monospace» и т. Д. С соответствующим подсказка стиля обнаружить значения по умолчанию.
Других решений пока нет …