我正在尝试读取常规窗口的窗口边框(框架)的颜色。
似乎window->palette().color(QPalette::XXXX)
会这样做,但是XXXX
是什么? 还是调色板不可能?如果是这样,如何?
您需要
使用它的本机GetSysColorBrush
函数:
QColor getWindowFrameColor() {
// This is the only way to detect that a given color is supported
HBRUSH brush = GetSysColorBrush(COLOR_ACTIVEBORDER);
if (brush) {
DWORD color = GetSysColor(COLOR_ACTIVEBORDER);
return QColor(GetRValue(color), GetGValue(color), GetBValue(color));
// calling DeleteObject(brush) is unnecessary, but would be harmless
}
return QColor();
}
我已经在Qt源代码中搜索了COLOR_ACTIVEBORDER
,检索它的唯一其他方法是在WebKit上运行一些自定义的javascript代码。