При использовании PyQt на Mac система перехватывает определенные команды, содержащие слово «Quit» или «Exit», и удаляет их из меню, потому что они существуют в другом месте. если в заголовке меню нет элементов, он не будет отображаться, и будет выглядеть так, как будто вы не изменили строку меню.
#exit = QtGui.QAction( 'Exit', self ) #this fails on my system
exit = QtGui.QAction( 'SomethingElse', self ) #this displays on my system
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exit)
Кроме того, вызов метода lift_ () не меняет строку меню на моем Mac. Я должен вручную выбрать окно (щелкнув в другом месте, а затем щелкнув), если я использую повышение_ (), чтобы получить правильную строку меню, отображаемую для моего приложения pyqt.
Также помните, что меню Mac отображаются в системном меню, а не в окне, как на компьютере с Windows или Linux. Это приводит нас к другому решению, предложенному Levi501 и Swdev. То есть использовать не родное меню, которое появляется в окне следующим образом:
menubar = self.menuBar()
menubar.setNativeMenuBar(False)
Как тот, кто использует Windows и Linux много, это имеет больше смысла для моих проектов.
Я нашел информацию «Выход» здесь: http://python.6.x6.nabble.com/addAction-to-menubar-td1916296.html