Я знаю, что Qt по умолчанию использует стиль ОС для украшения QProgressBar
.
Мне интересно, есть ли способ изменить цвет QProgressBar
при сохранении стиля ОС.
Я попробовал несколько методов, как показано ниже.
Изменение палитры :
QPalette palette = myProgressBar->palette();
palette.setBrush(QPalette::Highlight, someColor); // setColor() did the same
myProgressBar->setPalette(palette);
Изменение стиля напрямую :
QPalette palette = myProgressBar->palette();
palette.setBrush(QPalette::Highlight, someColor); // setColor() did the same
myProgressBar->style()->polish(palette);
Но оба метода были полностью проигнорированы и ничего не изменилось.
Единственный способ изменить цвет QProgressBar
- это установить таблицу стилей с помощью setStyleSheet()
. Проблема в том, что он одновременно игнорирует стиль ОС.
Я думаю, можно приблизительно копировать стиль ОС в таблице стилей, но я не знаю, возможно ли напрямую применить стиль ОС и изменить только цветовую палитру.
Буду очень признателен за любой полезный ответ.
РЕДАКТИРОВАТЬ: ОС не исправлена. Я пытаюсь заставить его работать под Windows, но приложение может / будет работать под другой ОС (некоторый дистрибутив Linux).