的活躍色彩在我QListWidget
,也有一些項目具有非默認的背景色,我把他們像這樣的定製內部QListWidget
類:如何更改(刪除)選擇/ QListWidget
item->setBackgroundColor(qcolor); // item is of type QListWidgetItem*
那些我設置的非默認顏色被QListWidget
的選擇顏色扭曲。看一個例子:
物品three
和four
都應該是相同的顏色,但它們不是因爲項目four
被選擇,並且因此結果色是原始顏色和QListWidget
「的總和選擇(活動項目?)顏色。
我的問題是如何編輯或刪除該選擇顏色?
我想在我的QListWidget
(在當我想改變該項目的背景色專用插槽):
QPalette pal = this->palette();
pal.setColor(QPalette::Highlight, QColor(255,255,255,0));
this->setPalette(pal); // updated
但它並沒有產生任何效果。我究竟做錯了什麼?這是一個正確的變量設置?我是否將其設置在QListWidget
或其代表內部?
更新:我嘗試使用樣式表作爲評論/答案指出的,但是,它將不可能用於我的應用程序,因爲我的行中的項目有3個狀態(所以我需要使用三顏色)。例如,對應於三種顏色的3種狀態:活動粉紅色,非活動綠色,其餘爲灰色。使用樣式表時,我無法將自定義屬性(假設爲QListWidget::item[Inactive="true"]
)設置爲單個QListWidgetItem
,但是對於完整的QListWidget
,因此它將所有行的顏色設置爲相同的顏色。
樣式表曾嘗試類似的問題here,並沒有工作,因此我使用樣式表作出結論是不是要走的路。
我原本使用的背景變化方法對我的目的很好,但我無法弄清楚如何擺脫添加到背景顏色併產生混合顏色的默認選擇顏色(透明淺藍色)。
你叫*這個 - >調用SetPalette(PAL); *用於高光顏色設置後?另外,你可以嘗試使用樣式表。查看更多類似問題的一般答案http://stackoverflow.com/questions/8417038/qcombobox-drop-down-list-set-selected-item-style –
對不起,但不清楚,但是,我重置調色板。我會看看你提供的例子,謝謝。 – vicrucann