NSWindow 拖动区域只能在主线程上失效!这将在未来抛出异常

NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future

我正在编写一个有两个线程的 Python 程序。一个显示 GUI,另一个从扫描仪获取输入并将数据保存在在线数据库中。该代码在我的 raspberry pi 上运行良好,但如果我在我的 MacBook Pro (Catalina 10.15.2) 上尝试它,我会收到上述警告,然后我的代码会崩溃。

有没有人知道如何让它工作或导致问题的原因?

您可能使用了不同的 Python 版本。 Raspberry PI 上的 Python 仍然允许在主线程外使 NSWindow 拖动区域无效,而 MacBook Pro 中的 Python 已经停止支持此功能。您可能需要重构您的代码,以便 NSWindow 拖动区域只会在主线程上失效。

您需要定位 NSWindow 拖动区域无效的位置,并确保这些发生在主线程中。

编辑

提问者解释说,根据 his/her 的调查结果,NSWindow 拖动区域仅适用于 Mac。

您可能想致电:

  matplotlib.pyplot.switch_backend('Agg') 
  • 这样您的服务器就不会尝试创建(然后销毁)永远不会被看到的 GUI windows。