无法移动 Matplotlib 图 window 并使用红色 X 按钮退出
Cannot move Matplotlib plot window and exit it using red X button
我 运行宁 Python v3.5
和 matplotlib v1.4.3
Windows 10 Home
。直到最近,我使用 matplotlib
和 PyQt
GUI 编写 python 脚本。 'plt.show()
' 代码将在另一个模块而不是 __main__
中编写。当我运行这段代码时,Matplotlib figure
无法移动并使用图中右侧顶部的红色按钮X退出。奇怪的是,显示了图表并且它确实运行良好。
为什么会出现这种症状?以及如何修改它?
我偶然发现了类似的问题。这是因为您的 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。并且可以运行顺畅无阻
如果您有任何其他问题,请随时提问。我很乐意帮助你。
我 运行宁 Python v3.5
和 matplotlib v1.4.3
Windows 10 Home
。直到最近,我使用 matplotlib
和 PyQt
GUI 编写 python 脚本。 'plt.show()
' 代码将在另一个模块而不是 __main__
中编写。当我运行这段代码时,Matplotlib figure
无法移动并使用图中右侧顶部的红色按钮X退出。奇怪的是,显示了图表并且它确实运行良好。
为什么会出现这种症状?以及如何修改它?
我偶然发现了类似的问题。这是因为您的 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。并且可以运行顺畅无阻
如果您有任何其他问题,请随时提问。我很乐意帮助你。