Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么PyQt菜单在macOS上会冻结?_Macos_Qt_Menu_Pyqt - Fatal编程技术网

为什么PyQt菜单在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

我在macOS Catalina上编写了一个最小的PyQt 5.15应用程序。它只有一个菜单和一个项目。虽然我可以看到菜单,但单击它不会打开它。完全没有反应。事实上,当我的应用程序处于焦点时,甚至连macOS(苹果图标)都不会打开。如果我取消焦点,然后重新聚焦在应用程序上,菜单就会起作用。我在Windows10上运行了相同的程序,没有出现这样的问题

是什么导致菜单栏在macOS中无法正常工作

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上的菜单,可以正常工作

还有人提到,将应用程序打包可以解决这个问题,但我没有尝试过