为什么PyQt菜单在macOS上会冻结?
我在macOS Catalina上编写了一个最小的PyQt 5.15应用程序。它只有一个菜单和一个项目。虽然我可以看到菜单,但单击它不会打开它。完全没有反应。事实上,当我的应用程序处于焦点时,甚至连macOS(苹果图标)都不会打开。如果我取消焦点,然后重新聚焦在应用程序上,菜单就会起作用。我在Windows10上运行了相同的程序,没有出现这样的问题 是什么导致菜单栏在macOS中无法正常工作为什么PyQt菜单在macOS上会冻结?,macos,qt,menu,pyqt,Macos,Qt,Menu,Pyqt,我在macOS Catalina上编写了一个最小的PyQt 5.15应用程序。它只有一个菜单和一个项目。虽然我可以看到菜单,但单击它不会打开它。完全没有反应。事实上,当我的应用程序处于焦点时,甚至连macOS(苹果图标)都不会打开。如果我取消焦点,然后重新聚焦在应用程序上,菜单就会起作用。我在Windows10上运行了相同的程序,没有出现这样的问题 是什么导致菜单栏在macOS中无法正常工作 import sys from PyQt5.QtWidgets import QApplication
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
insert_action = QAction("&Open", self)
insert_action.triggered.connect(self.open_file)
menu = self.menuBar()
file_menu = menu.addMenu("&File")
file_menu.addAction(insert_action)
def open_file(self):
pass
app = QApplication(sys.argv)
w = MainWindow()
w.show()
app.exec_()
这不是一个完整的答案,而是一个解决办法:
menu.setNativeMenuBar(False)
使用窗口上的非本机macOS菜单,类似于Windows和Linux上的菜单,可以正常工作
还有人提到,将应用程序打包可以解决这个问题,但我没有尝试过