From: Pierre R. <pie...@gm...> - 2012-02-26 11:23:46
|
Le 25/02/2012 22:59, John Hunter a écrit : On Sat, Feb 25, 2012 at 1:54 PM, Benjamin Root <ben...@ou...> wrote: > >> > I would be interested in accelerating the schedule. Since this is a >> > bug-fix release and not a major release, we can presume the tree is >> > pretty stable. How about we aim for an release candidate rc1 the >> > week after next? Are there any issues or pull requests that should >> > hold the release? If so, let's tag them with release-critical. >> > >> > After we get the bugfix out I'd like to gear up for a major python3 >> > release. >> > >> > >> > The QT4 event handling bugs needs a qt expert on them. I tried looking >> > into them and there is no obvious reason to me why they aren't working. >> >> Are you referring to 771, 707, and 525? 771 would appear to be the >> most urgent. > > > 711 and 707. Didn't even notice 525, but it is probably related to > 707. If true, then 707 and 525 are likely focus issues (maybe > window-manager dependent?). 711 definitely seem to be release blocking. > > Hi Pierre, we are still having trouble with the close event in mpl figure windows not being emitted. I see you posted on this subject in 2009 and did some monkey patching to work around the problem for spyder http://old.nabble.com/Qt4-backend%3A-critical-bug-with-PyQt4-v4.6%2B-td26205716.html This was a while ago so I don't know if your suggestions are still appropriate for recent pyqt and mpl. Would you have a minute to take a look at this mpl issue https://github.com/matplotlib/matplotlib/issues/711 and advise us on a fix? Thanks, JDH Hi John, Replacing this (backend_qt4.py, class "FigureCanvasQT", line 141): QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'), self.close_event) by this: QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'), lambda: self.close_event()) will solve this issue. The reason is that PyQt fails (silently) to call a method of this object just before detroying it. Using a lambda function will work, exactly the same as using a function (which is not bound to the object to be destroyed). Side note: I'm not sure that it's the intended behavior for PyQt... HTH, Pierre |