【问题标题】:Cannot move Matplotlib plot window and exit it using red X button无法移动 Matplotlib 绘图窗口并使用红色 X 按钮退出它
【发布时间】:2016-08-09 02:04:40
【问题描述】:

我在Windows 10 Home 上运行Python v3.5matplotlib v1.4.3。直到最近,我使用matplotlibPyQt GUI 编写python 脚本。 'plt.show()' 代码将写入另一个模块而不是__main__。当我运行此代码时,Matplotlib figure 无法移动并使用图右侧顶部的红色按钮 X 退出。奇怪的是,图表显示出来了,它确实运作良好。

为什么会出现这种症状?以及如何修改?

【问题讨论】:

    标签: python matplotlib charts pyqt figure


    【解决方案1】:

    我偶然发现了一个类似的问题。这是因为您的 matplotlib 图形和 PyQt GUI 都在同一个主线程中运行。由于它们在主线程中,因此它们中只有一个拥有自己的 CPU。

    我试图通过将 PyQT GUI 或 matplotlib 放在另一个线程中来解决这个问题。但这不起作用。 PyQT 和 matplotlib 都需要在主线程中运行。

    所以这里有一个解决方法。您可以从新创建的 python shell 启动 matplotlib 图:

    import subprocess
    ...
    
        # When you click the button in your PyQT GUI,
        # Create a new process:
        myMatProcess = subprocess.Popen(['python', 'myGraph.py'], shell=True)
    

    现在你的 PyQT GUI 和你正在绘制的 matplotlib 图形都有自己的 python 解释器 shell。并且可以流畅运行,互不阻碍。

    如果您还有其他问题,请随时提问。我很乐意为您提供帮助。

    【讨论】:

    • 非常感谢您的评论。谢谢你的帮助!!
    • Muiler~!,我认为使用'multiprocessing'模块比'subprocess'更好。因为“子进程”很难与子进程通信
    猜你喜欢
    • 2013-01-05
    • 2012-01-02
    • 2016-03-10
    • 2023-03-09
    • 2014-08-23
    • 2012-10-20
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多