Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9d085c4

Browse files
author
James Evans
committed
Fixed the Qt backend "underlying C/C++ object deleted" bug.
(Bug #1359249) svn path=/trunk/matplotlib/; revision=2246
1 parent 14acc10 commit 9d085c4

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

CHANGELOG

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
2006-03-31 Applied Vasily Sulatskov's Qt Navigation Toolbar enhancement. -JRE
1+
2006-03-31 Fixed the Qt "Underlying C/C++ object deleted" bug. - JRE
2+
3+
2006-03-31 Applied Vasily Sulatskov's Qt Navigation Toolbar enhancement. - JRE
24

35
2006-03-31 Ported Norbert's rewriting of Halldor's stineman_interp
46
algorithm to make it numerix compatible and added code to

lib/matplotlib/backends/backend_qt.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ def __init__( self, canvas, num ):
152152
FigureManagerBase.__init__( self, canvas, num )
153153
self.canvas = canvas
154154
self.window = qt.QMainWindow( None, None, qt.Qt.WDestructiveClose )
155+
self.window.closeEvent = self._widgetCloseEvent
155156

156157
centralWidget = qt.QWidget( self.window )
157158
self.canvas.reparent( centralWidget, qt.QPoint( 0, 0 ) )
@@ -161,8 +162,6 @@ def __init__( self, canvas, num ):
161162
self.canvas.setFocus()
162163
self.window.setCaption( "Figure %d" % num )
163164

164-
qt.QObject.connect( self.window, qt.SIGNAL( 'destroyed()' ),
165-
self._widgetclosed )
166165
self.window._destroying = False
167166

168167
if matplotlib.rcParams['toolbar'] == 'classic':
@@ -209,6 +208,10 @@ def _widgetclosed( self ):
209208
self.window._destroying = True
210209
Gcf.destroy(self.num)
211210

211+
def _widgetCloseEvent( self, event ):
212+
self._widgetclosed()
213+
qt.QWidget.closeEvent( self.window, event )
214+
212215
def destroy( self, *args ):
213216
if self.window._destroying: return
214217
self.window._destroying = True
@@ -232,6 +235,7 @@ class NavigationToolbar2QT( NavigationToolbar2, qt.QWidget ):
232235
def __init__( self, parent, canvas ):
233236
self.canvas = canvas
234237
self.buttons = {}
238+
235239
qt.QWidget.__init__( self, parent )
236240

237241
# Layout toolbar buttons horizontally.

0 commit comments

Comments
 (0)