我试图将一个项目添加到一个简单的PyQt示例的应用程序菜单栏中。但是,以下代码似乎根本没有改变菜单栏。菜单中唯一的项目是“Python”。下面是大部分代码,减去导入和实例化。

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(250, 150)
        self.setWindowTitle('menubar')
        self.modal = False

        exit = QtGui.QAction( QtGui.QIcon('images/app_icon.png'), 'Exit', self )
        exit.setShortcut('Ctrl+Q')
        exit.setStatusTip('Exit application')
        self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

        menubar = self.menuBar()
        file = menubar.addMenu('File')
        file.addAction(exit)

我还尝试过创建新的QMenuBar并使用setMenuBar()方法手动换出菜单栏。

上面的代码段中有明显的错误吗?

最佳答案

我没有在此计算机上安装PyQt进行测试,但我认为在Mac上,QMainWindow.menuBar()函数不会返回应用程序范围的菜单栏。

您可以尝试创建菜单栏,例如:

menubar = QtGui.MenuBar()

我将其基于QMainWindow.menuBar()函数的文档放在这里:

http://doc.qt.io/qt-4.8/qmainwindow.html#menuBar

您也可以在此页面上查看Mac OS X上标记为 QMenuBar的部分:

http://doc.qt.io/qt-4.8/qmenubar.html#details

希望对您有所帮助!

10-08 05:24