Как получить цвет фона QWidget после установки QStyleSheet

У меня есть настольный QApplication (Qt 5.9), на котором я успешно установил стиль, используя таблицу стилей. Во время выполнения каждый QWidget выглядит правильно, как задумано.
Что мне нужно знать, так это цвет фона определенного стилизованного виджета, скажем, QTooltip.

Я попробовал QWidget :: палитра метод, но то, что я получил, выглядело как цвет системы по умолчанию для QPalette :: ColorRole Я спросил.
Более того, Qt Docs рекомендуем не использовать этот метод при использовании таблиц стилей.

Итак … в общем, как можно запросить свойство виджета, определенного с помощью таблиц стилей?

1

Решение

Вы не можете напрямую получить доступ к отдельным свойствам таблицы стилей. Что вы можете сделать, это получить таблицу стилей, а затем вам нужно будет проанализировать ее и найти свойство, которое вы ищете (some_widget->styleSheet() вернул бы его как QString).

Если вы не хотите этого делать и хотите получить прямой доступ к палитре, вы должны использовать ее вместо таблицы стилей для изменения цвета.

Пример кода, как вы можете стилизовать свой код, используя палитру вместо таблицы стилей:

QPalette px;
px.setColor(QPalette::Text, QColor(255, 255, 255)); // Set text color to white
px.setColor(QPalette::Base, QColor(0, 0, 0)); // Set background to black
some_widget->setPalette(px);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]