在ubuntu 14.04中使用python Qt4(pyqt)显示菜单栏(总是)

时间:2016-01-11 18:25:14

标签: python python-2.7 ubuntu pyqt

我从pyQt4开始,旨在制作一个简单的应用程序。我的操作系统是Ubuntu 14.04,我正在使用pyQt4 Designer,但也尝试从头开始。当我创建菜单栏时,除非我最大化窗口,否则它不会出现。我已经意识到,使用像QGIS这样的pyQt制作的其他软件,这个问题在Ubuntu中可能是正常的。

问题: 有没有办法强制应用程序显示菜单栏,即使它没有最大化?

我可以放置代码,但我认为无关紧要。 谢谢。

2 个答案:

答案 0 :(得分:2)

这不是Qt的问题,它是Ubuntu的Unity shell的一个功能,称为全局菜单栏。自从Ubuntu 14.04 it can be switched off

但是如果你希望你的菜单取代窗口顶部而不管图形外壳的首选项,你应该使用Qt菜单栏而不是原生菜单:

class Window(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QWidget.__init__(self)

        toolMenu = QtGui.QMenuBar()
        toolMenu.setNativeMenuBar(False) # <--
        self.setMenuBar(toolMenu)

        for i in range(5):
            _ = toolMenu.addAction('Action {}'.format(i))

如果您愿意,可以在Qt Designer中进行此更改。在Object Inspector树中选择您的QMenuBar对象,在Property Editor中向下滚动到QMenuBar部分,然后取消选中nativeMenuBar复选框。

答案 1 :(得分:0)

尝试一下

menuBar = self.menuBar()
mainMenu.setNativeMenuBar(False)