2012-07-12 229 views
1

隨處看,找不到我可以應用的解決方案。Python qt - 更改QMenu項目的背景顏色項目

簡單的情況下。我有一個有2個條目的子菜單。

menu = QMenu("MainMenu", self) 
submenu = QMenu("Submenu", menu) 
menu.addMenu(submenu) 

submenu.addAction( QIcon(""), "entry 1", myFuncs.func1) 
submenu.addAction( QIcon(""), "entry 2", myFuncs.func2) 

暫時,我只是增加了一個線至少改變所有項目的背景顏色:

submenu.setStyleSheet("QWidget { background-color: %s }" % col_brightGray.name()) 

不過。 我想將每個條目的背景顏色更改爲不同的陰影。 我確定有一種方法,但嘗試了很多後,我不能釘它。

預先感謝您

回答

1

的QAction不支持setStylesheet因爲它不是QWidget中,選中此http://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu

+0

的確。謝謝。 只是想知道替代品。我沒有考慮爲這個動作設置顏色。但是在菜單條目上。 我幾次閱讀該文檔。雖然答案可能在使用QMenu ::項目,不幸的是我不知道如何將它翻譯成上面的代碼..或者python,嘗試了幾次。 – Litow 2012-07-13 01:32:17

+0

'self.mainMenu.setStyleSheet(「QMenu :: item {background-color:lightblue;}」)'應該爲物品權限做這件事?但無論如何,它將同樣適用於菜單中的所有項目。 – Achayan 2012-07-13 17:17:40

+0

謝謝你。它給了我一個嘗試更多事情的機會。很明顯,我在某個地方錯過了這一點。我試過這個: 'submenu.setStyleSheet(「QMenu :: item [text ='entry 1'] {background-color:blue;}」)' and this: 'actionEntry1 = submenu.addAction(QIcon(「」),「entry 1」,myFuncs.func1) submenu.setStyleSheet(「QMenu :: item#actionEntry1 {background-color:blue;}」)' 沒有錯誤。但是也沒有顏色 – Litow 2012-07-16 02:55:33

相關問題