У меня есть QTreeWidget
(однако этот вопрос относится к любому виду виджетов), в котором у меня есть элементы, которые при определенных обстоятельствах меняют цвет переднего плана на красный, используя item.setForeground(0,QBrush(QColor("red")))
.Изменение цвета текста виджета по умолчанию с применением стилей элементов QTreeWidget
Позже они могут изменить цвет переднего плана на черный. Но проблема в том, что если виджет был настроен на какую-то таблицу стилей, которая изменила цвет переднего плана, кроме черного, у меня проблемы. Мой вопрос заключается в том, как вернуть цвет элемента к цвету по умолчанию, используемому виджетам для цвета текста, с учетом применяемых таблиц стилей?
Например, если я применяю темную таблицу стилей, которая делает черный фон виджета темным, а цвет текста по умолчанию белым, сначала я вижу белые элементы, затем они меняются на красный, а затем становятся черными. Но я хочу, чтобы они снова стали белыми. Но я не знаю, как найти, что это белый (и не черный) цвет, который они должны изменить.
Я попытался это:
1) если я использую item.setForeground(QtGui.QBrush())
который я надеялся бы использовать пустую и поэтому по умолчанию кисти, я всегда получаю черный текст
2) если я запрашиваю цвет текста treeWidget.palette().text().color()
Я всегда получаю тот же цвет, независимо от таблицы стилей
Я боюсь, что я немного задал вопрос XY ... Моя цель состояла в том, чтобы просто сбросить цвет переднего плана, но мои попытки с 'setForeground()' позволяют мне далеко от правильного и простейшего решения (предложенное ekhumoro ниже), чтобы копаться в таблицах стилей и т. д. :) –