OS детектировать текущую системную тему? И соответственно нужно подписаться на системный сигнал т.к. под маком тема может сменить во время работы приложение по таймеру, либо пользователь поменяет. Нашёл примеры как сделать это на swift, но прийдётся какую-то обёртку писать под c++ или ещё что-то придумывать.
objc
Это ты к тому что подружить с++ и objc легче чем с++ и swift?
bool isSystemDarkModeEnabled() { #if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_14) if (@available(macOS 10.14, *)) { auto appearance = [NSApp.effectiveAppearance bestMatchFromAppearancesWithNames: @[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; return [appearance isEqualToString:NSAppearanceNameDarkAqua]; } #endif return false; }
А зачем? Тебе надо актуальную палитру получить?
Чтобы выбрать нужную внутреннюю тему. Есть наследник QStyle у которого есть состояния для темной и светлой темы. Если их под маком вручную переключать то всё нормально выглядит. Но вот если тема тёмная на маке и светлая в приложении, часть виджетов выглядит некрасиво.
А у тебя в теме стандартные цвета используются по палитре?
Обсуждают сегодня