Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ubuntu 14.04中使用python Qt4(pyqt)显示菜单栏(始终)_Python_Python 2.7_Ubuntu_Pyqt - Fatal编程技术网

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

在ubuntu 14.04中使用python Qt4(pyqt)显示菜单栏(始终),python,python-2.7,ubuntu,pyqt,Python,Python 2.7,Ubuntu,Pyqt,我从pyQt4开始,旨在制作一个简单的应用程序。我的操作系统是Ubuntu14.04,我正在使用pyQt4设计器,但也试图从头开始。当我创建菜单栏时,除非我最大化窗口,否则它不会出现。我已经意识到,看看其他一些用pyQt制作的软件,比如QGIS,这个问题在Ubuntu中可能很正常 问题是: 有没有办法强制应用程序显示菜单栏,即使它没有最大化? 我可以把代码写出来,但我认为这无关紧要。 谢谢。这不是Qt的问题,这是Ubuntu Unity shell的一个功能,叫做全局菜单栏。从Ubuntu 14

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

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

我可以把代码写出来,但我认为这无关紧要。
谢谢。

这不是Qt的问题,这是Ubuntu Unity shell的一个功能,叫做全局菜单栏。从Ubuntu 14.04开始

但是,如果您想让菜单在窗口顶部占据一席之地,而不考虑图形shell首选项,则应使用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))
类窗口(QtGui.QMainWindow): 定义初始化(自): QtGui.QWidget.\uuuuu init\uuuuuuu(self) toolMenu=QtGui.QMenuBar() toolMenu.setNativeMenuBar(False)#试试这个

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

这不是Qt的问题,它是Ubuntu的UnityShell的一个功能,叫做全局菜单栏。自从Ubuntu14.04之后,它就可以关闭了:谢谢,它部分解决了我的问题,但是我看到了一些软件,即使在关闭的情况下也能保持菜单栏。有没有一种方法可以用pyQt来实现?这是可以实现的,请参见答案。