2012-07-12 667 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