在PyQT4中设置菜单栏的样式

时间:2015-02-05 20:12:22

标签: python-3.x pyqt4 qtstylesheets

我正在完成我的应用程序,但我无法弄清楚如何更改pyqt4中的MenuBar。我使用的是黑色和灰色主题,在窗口上菜单栏是白色的,我希望它像应用程序的其余部分一样黑暗。如何在PyQt4中更改QMenu或QMenuBar颜色的背景颜色。我已经能够改变下拉菜单,但顶部栏有File |工具|帮助保持白色。我尝试改变的属性:

background-color: # Doesn't seem to do anything
color: # Only changes the text color not the background
alternate-background-color: # Doesn't seem to do anything

也许我还没找到合适的属性来分配背景颜色以匹配应用程序的其余部分,这有点帮助吗?谢谢!

2 个答案:

答案 0 :(得分:3)

我的电脑看起来很好。

class SubMenu(QMenuBar):
    def __init__(self, parent=None):
        super(SubMenu, self).__init__(parent)
        self.addAction("File")
        self.addAction("View")
        self.setStyleSheet("""QMenuBar {
             background-color: blue;
        }""")
        self.resize(320, 240)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    m = SubMenu()
    m.show()
    app.exec_()

带有项目的样式表

class SubMenu(QMenuBar):
    def __init__(self, parent=None):
        super(SubMenu, self).__init__(parent)
        self.addAction("File")
        self.addAction("View")
        self.setStyleSheet("""QMenuBar {
         background-color: blue;
        }

     QMenuBar::item {
         background: blue;
     }""")
        self.resize(320, 240)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    m = SubMenu()
    m.show()
    app.exec_()

This is stylesheet without menu item This is stylesheet with Item

答案 1 :(得分:0)

希望此评论有一天能对他人有所帮助。 PySide2,Python 3 +

self.saveFile_action = QAction("&Save", self)
self.saveFile_action.setShortcut("Ctrl+S")
self.saveAllFile_action = QAction("Save &All", self)
self.saveAllFile_action.setShortcut("Ctrl+Shift+S")

self.menuBar = QMenuBar(self)
self.menuBar.setStyleSheet(
"""
QMenuBar
{
    background-color: #333399;
    color: #999;
}
QMenuBar::item
{
    background-color: #333399;
    color: #999;
}
QMenuBar::item::selected
{
    background-color: #3399cc;
    color: #fff;
}
QMenu
{
    background-color: #3399cc;
    color: #fff;
}
QMenu::item::selected
{
    background-color: #333399;
    color: #999;
}
 """
)

self.fileMenu = QMenu("&File", self.menuBar)

self.exportSubmenu = QMenu("&Export", self.fileMenu)

self.fileMenu.addSeparator()
self.fileMenu.addAction(self.saveFile_action)
self.fileMenu.addAction(self.saveAllFile_action)
self.fileMenu.addSeparator()
self.fileMenu.addAction(self.exportSubMenu.menuAction())

self.settinsMenu = QMenu("&Settings", self.menuBar)
self.helpMenu = QMenu("&Help", self.menuBar)

self.menuBar.addAction(self.fileMenu.menuAction())
self.menuBar.addAction(self.settingsMenu.menuAction())
self.menuBar.addAction(self.helpMenu.menuAction())

enter image description here