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