Я пытаюсь прочитать цвет границы окна (рамки) обычного окна.Как получить цвет рамки окна?
Кажется, что window->palette().color(QPalette::XXXX)
сделал бы это, но что такое XXXX
? или это невозможно с палитрой? Если да, то как?
Я пытаюсь прочитать цвет границы окна (рамки) обычного окна.Как получить цвет рамки окна?
Кажется, что 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 обычая.
Но это, будучи родным, будет зависящим от системы. Я искал что-то портативное, спасибо! – Joan
@ Juan: На платформах, основанных на X-windows, нет простого способа получить эту информацию. В OS X нет понятия цвета оконной рамы. Механизм тематики имеет не только «цветное» значение для этого. Итак, какую именно переносимость вы ожидаете от чего-то, что поддерживается только на ** одном из трех самых популярных настольных платформ? –
@Juan: В принципе, он * переносится - на единственную платформу, на которой доступна такая информация. –
Изменить рамку для «строки заголовка» (и рамки для изменения размера на Windows), извините за неточность! – Joan