PyQtGraph 打开然后立即关闭

PyQtGraph opening then closing straight away

我运行文档中的一些基本代码

import pyqtgraph as pg
import numpy as np
x = np.arange(1000)
y = np.random.normal(size=(3, 1000))
plotWidget = pg.plot(title="Three plot curves")
for i in range(3):
    plotWidget.plot(x, y[i], pen=(i,3))

但由于某种原因 window 打开然后立即关闭,我只看到它闪烁。是否有某种功能可以让 window 保持打开状态?

问题是 Python 进程在 for 循环的最后一次迭代后完成,因此也终止了小部件。您可以使用 -i 开关在执行脚本后进入交互式 Python 解释器,该解释器保留在执行脚本期间实例化的所有对象:

python -i /path/to/script.py

诚然,这是一种解决方法,pyqtgraph 可能有一种 "native" 方法来实现这一点(例如 matplotlib.pyplot 中的 show 函数默认执行此操作)但是我找不到 pyqtgraph.

的类似函数

要进一步 a_guest 回答 - 要启用请参阅 Pycharm 中的图表,请转到:运行 -> 编辑配置 -> 解释器选项。将 -i 留在那里。

您可以通过在脚本开头创建 QApplication 然后在脚本末尾调用其 exec_() 方法来保持 window 打开,如下所示:

import pyqtgraph as pg
import numpy as np
import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)  # Create QApplication ***

x = np.arange(1000)
y = np.random.normal(size=(3, 1000))
plotWidget = pg.plot(title="Three plot curves")
for i in range(3):
    plotWidget.plot(x, y[i], pen=(i, 3))

# Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        app.exec_()  # Start QApplication event loop ***

我在关键行上加了***