Название: системные цвета Отправлено: a_goodgirl от Май 14, 2012, 12:49 Здравствуйте! Задавала вопрос на форуме CrossPlatform, никто не ответил..
Попробую здесь: Нужно получить системные цвета (цвет фона заголовка, текста заголовка, рамки и т.д.). Для Windows можно взять ::GetSysColor с константами типа COLOR_ACTIVEBORDER, COLOR_ACTIVECAPTION и так далее. Для других платформ пытаюсь использовать qApp->palette().color с разными QPalette::ColorRole (например, QPalette::ButtonText - цвет текста в кнопке). Но дело в том, что ColorRole гораздо меньше, чем констант в Windows ! например, для COLOR_ACTIVEBORDER, COLOR_ACTIVECAPTION, COLOR_GRAYTEXT и т.д. (у меня получилось 13 штук таких) никакого соответствия в ColorRole не находится.. Как бы это задать? Название: Re: системные цвета Отправлено: GreatSnake от Май 14, 2012, 12:57 Как бы это задать? Увы никак :(Дело в том, что декорациями окна управляет WindowManager (WM), которых под X11 великое множество. И, насколько мне известно, не существует стандарта, которым бы описывалось API доступа к WM, для получения ресурсов описывающих декорации окна. Название: Re: системные цвета Отправлено: a_goodgirl от Май 14, 2012, 16:21 ну откуда-то qt берет цвета, когда рисует окно (заголовок, цвет шрифта заголовка, рамку и т.д.)
Название: Re: системные цвета Отправлено: GreatSnake от Май 14, 2012, 16:29 ну откуда-то qt берет цвета, когда рисует окно (заголовок, цвет шрифта заголовка, рамку и т.д.) Qt рисует декорации только своих под-окон в режиме MDI либо в QGraphicsProxyWidget. Во всех других случаях декорации рисует WM, т.е. совершенно другой процесс. |