我从pyQt4开始,旨在制作一个简单的应用程序。我的操作系统是Ubuntu 14.04,我正在使用pyQt4 Designer,但也尝试从头开始。当我创建菜单栏时,除非我最大化窗口,否则它不会出现。我已经意识到,使用像QGIS这样的pyQt制作的其他软件,这个问题在Ubuntu中可能是正常的。
问题: 有没有办法强制应用程序显示菜单栏,即使它没有最大化?
我可以放置代码,但我认为无关紧要。 谢谢。
答案 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)