Я пытаюсь сделать прозрачный прозрачный для QComboBox. Цвет этого QComboBox также изменяется на основе выбранного индекса. Вот мое лучшее решение до сих пор:Qt как изменить цвет подсветки конкретного объекта QComboBox
switch(comboBox->currentIndex())
{
case 0:
comboBox->setStyleSheet("QWidget {color:black}");
break;
case 1:
comboBox->setStyleSheet("QWidget {background-color:red; color:white;}");
break;
case 2:
comboBox->setStyleSheet("QWidget {background-color:green; color:white;}");
break;
}
comboBox->setItemData(0, QColor(Qt::white), Qt::BackgroundRole);
comboBox->setItemData(0, QColor(Qt::black), Qt::ForegroundRole);
comboBox->setItemData(1, QColor(Qt::red), Qt::BackgroundRole);
comboBox->setItemData(1, QColor(Qt::white), Qt::ForegroundRole);
comboBox->setItemData(2, QColor(Qt::darkGreen), Qt::BackgroundRole);
comboBox->setItemData(2, QColor(Qt::white), Qt::ForegroundRole);
QPalette p = comboBox->palette();
p.setColor(QPalette::Highlight, Qt::transparent);
comboBox->setPalette(p);
p = comboBox->view()->palette();
p.setColor(QPalette::Highlight, Qt::transparent);
comboBox->view()->setPalette(p);
Проблема заключается в том, что любой цвет по QComboBox в настоящее время является то, что цвет выделения будет при выборе пункта во всплывающем окне. Я бы хотел, чтобы каждый элемент QComboBox оставался одного цвета. Изображения показывают проблему, с которой я сталкиваюсь.
Я не совсем понял вашу проблему, не могли бы вы рассказать, какой цвет должны иметь элементы «Без изменений», «Отключить» «Вкл.» И что они теперь (или почему ваши изображения ошибочны)? –
Выкл должен быть красным. Вкл. Должен быть зеленым, и никакие изменения не должны быть по умолчанию. Цвет подсветки установлен на прозрачный. Это работает для combobox, но когда вы выбираете элементы в combobox, «прозрачный» не дает мне результатов, на которые я надеюсь. Вы можете видеть на изображениях выбранный элемент из QAbstractItemView всегда красный. –