У меня есть настольный QApplication (Qt 5.9), на котором я успешно установил стиль, используя таблицу стилей. Во время выполнения каждый QWidget выглядит правильно, как задумано.
Что мне нужно знать, так это цвет фона определенного стилизованного виджета, скажем, QTooltip.
Я попробовал QWidget :: палитра метод, но то, что я получил, выглядело как цвет системы по умолчанию для QPalette :: ColorRole Я спросил.
Более того, Qt Docs рекомендуем не использовать этот метод при использовании таблиц стилей.
Итак … в общем, как можно запросить свойство виджета, определенного с помощью таблиц стилей?
Вы не можете напрямую получить доступ к отдельным свойствам таблицы стилей. Что вы можете сделать, это получить таблицу стилей, а затем вам нужно будет проанализировать ее и найти свойство, которое вы ищете (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);
Других решений пока нет …