我正在嘗試使突出顯示爲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項目保持相同的顏色。圖像顯示我遇到的問題。
我完全不理解你的問題,你能告訴什麼顏色的項目「沒有改變」,「關」,「開」應該是什麼,他們現在是什麼(或爲什麼你的圖像是錯的)? –
關閉應該是紅色的。 On應該是綠色的,並且沒有改變應該是默認顏色。高亮顏色設置爲透明。這適用於組合框,但是當您在組合框中選擇項目時,「透明」不會給我所期望的結果。您可以在圖像中看到QAbstractItemView中的選定項目始終爲紅色。 –