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 ***
我在关键行上加了***
我运行文档中的一些基本代码
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 ***
我在关键行上加了***