3
我試過pg.close(),但沒有奏效,在手冊中找不到它。我在一個循環中生成圖,所以我想在每個循環結束時關閉它們(取而代之,它會彈出一個打開的窗口,直到我的計算機發生故障)。PyQtGraph - 如何關閉繪圖窗口/關閉所有繪圖窗口?
我試過pg.close(),但沒有奏效,在手冊中找不到它。我在一個循環中生成圖,所以我想在每個循環結束時關閉它們(取而代之,它會彈出一個打開的窗口,直到我的計算機發生故障)。PyQtGraph - 如何關閉繪圖窗口/關閉所有繪圖窗口?
所有Qt小部件都有一個close
方法。
而且您可以使用QApplication.closeAllWindows
關閉所有窗口。
下面顯示的代碼具有退出方法。
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
import numpy as np
import time
import sys
class guiThread(QtCore.QThread):
def __init__(self):
QtCore.QThread.__init__(self)
self.status=True
self.range=100
#Add exit button connect and define a exit function like self.stop
self.app = QtGui.QApplication(sys.argv)
self.app.aboutToQuit.connect(self.stop)
self.win = pg.GraphicsWindow(title="Example")
self.win.resize(500,400)
pg.setConfigOptions(antialias=True)
self.px = self.win.addPlot(title="X plot")
self.ckx = self.px.plot(pen='y')
self.cdx = self.px.plot(pen='r')
self.px.setXRange(0, self.range)
self.px.setYRange(-180, 180)
self.px.showGrid(x=True, y=True)
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.updateplot)
self.timer.start(0.001)
self.kx=np.zeros(self.range)
self.dx=np.zeros(self.range)
def updateplot(self):
self.ckx.setData(self.kx)
self.cdx.setData(self.dx)
def append(self,sin):
self.kx=np.roll(self.kx,-1)
self.kx[-1]=sin[0]
self.dx=np.roll(self.dx,-1)
self.dx[-1]=int(sin[1])
def stop(self):
print "Exit" #exiy function
self.status=False
sys.exit()
def run(self):
print "run"
while self.status:
sin=np.random.randint(-180,180,2)
print sin
self.append(sin)
time.sleep(0.01)
這就是我的想法 - 雖然奇怪的是這只是給我留下了空白的窗戶而不是摧毀它們! – cjm2671
如果關閉窗口內唯一的小部件,那麼是的,您將留下一個空窗口。確保你正在窗口本身調用close()。 – Luke