1、使用 PyQt5 的 QMainWindow 替代 plt.show():
1.1 使用 PyQt5 的 QMainWindow 或其他合适的窗口类来创建你的图形界面。
1.2 将 matplotlib 的图表嵌入到 PyQt5 窗口中,而不是使用 plt.show()。这可以通过使用 FigureCanvasQTAgg 或类似的类来实现。
2、在 PyQt5 事件循环外部使用 plt.show():
2.1如果你确实需要在 PyQt5 应用程序中使用 plt.show(),可以尝试在 PyQt5 的事件循环外部调用它。例如,在 PyQt5 的一个按钮的点击事件处理函数中启动一个新的线程或进程来显示图表。
3、使用 Qt5Agg 作为 matplotlib 的后端:
3.1在你的代码中设置 matplotlib 使用 Qt5Agg 作为其后端。这可以通过设置环境变量或在代码中直接设置来实现。使用 Qt5Agg 后端可以让 matplotlib 与 PyQt5 更好地集成。
4、确保正确关闭 PyQt5 应用程序:
4.1在关闭 PyQt5 应用程序之前,确保先关闭所有通过 plt.show() 创建的图形窗口。这可以通过在关闭 PyQt5 窗口的事件处理函数中调用相应的函数来实现。