PyQt4中QMenuBar出错

时间:2016-04-18 16:27:40

标签: python pyqt pyqt4

我试过放一个MenuBar,但它没有出现,我也不知道自己做错了什么。

from PyQt4 import QtGui
import sys


class Window(QtGui.QMainWindow):

  def __init__(self):
    super(Window, self).__init__()
    self.setWindowTitle("IDE")
    self.initUI

  def initUI(self):

    grid = QtGui.QGridLayout(self)
    menuBar = QtGui.QMenuBar(self)
    self.fileMenu = menuBar.addMenu("File")

    grid.addWidget(menuBar, 0, 0)

    self.setLayout(grid)

结果:

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在主窗口上设置菜单栏

self.setMenuBar(menuBar)

在许多情况下,您不需要手动创建菜单栏,只需在主窗口上调用.menuBar()即可返回当前窗口,如果不存在则创建一个。如果您的.ui文件有可能包含菜单栏和菜单栏项,则这是首选方式。

menubar = self.menuBar()

此外,您无法将QMenuBars添加到布局 - from the docs

  

无需布置菜单栏。它会自动将自己的几何体设置到父窗口小部件的顶部,并在调整父窗口大小时适当地更改它。