我试图将一个项目添加到一个简单的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
希望对您有所帮助!