From 7fce0ce5cba39a55e7125f1cc5f56b0ecd21299c Mon Sep 17 00:00:00 2001 From: Luke Campagnola Date: Tue, 26 Mar 2013 13:35:29 -0400 Subject: [PATCH] Allow GraphicsView.setCentralItem(None) --- pyqtgraph/graphicsItems/ViewBox/ViewBox.py | 2 ++ pyqtgraph/widgets/GraphicsView.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py index 3bbb9fe8..338cdde4 100644 --- a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py +++ b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py @@ -1322,6 +1322,8 @@ class ViewBox(GraphicsWidget): k.destroyed.disconnect() except RuntimeError: ## signal is already disconnected. pass + except TypeError: ## view has already been deleted (?) + pass def locate(self, item, timeout=3.0, children=False): """ diff --git a/pyqtgraph/widgets/GraphicsView.py b/pyqtgraph/widgets/GraphicsView.py index dd49ab7d..6ddfe930 100644 --- a/pyqtgraph/widgets/GraphicsView.py +++ b/pyqtgraph/widgets/GraphicsView.py @@ -181,8 +181,9 @@ class GraphicsView(QtGui.QGraphicsView): if self.centralWidget is not None: self.scene().removeItem(self.centralWidget) self.centralWidget = item - self.sceneObj.addItem(item) - self.resizeEvent(None) + if item is not None: + self.sceneObj.addItem(item) + self.resizeEvent(None) def addItem(self, *args): return self.scene().addItem(*args) @@ -272,7 +273,8 @@ class GraphicsView(QtGui.QGraphicsView): scaleChanged = True self.range = newRect #print "New Range:", self.range - self.centralWidget.setGeometry(self.range) + if self.centralWidget is not None: + self.centralWidget.setGeometry(self.range) self.updateMatrix(propagate) if scaleChanged: self.sigScaleChanged.emit(self)