On Wed, 29 Jul 2009 23:05:52 +1200, Derek Harland <[email protected]> wrote: > Hi Sylvain (and hopefully some helpful PyQt people!) > > * As noted earlier, after applying my patch to get pylint to recognise > PyQt4, pylint will Bus Error depending on import order > eg > from PyQt4 import QtCore, QtGui # will cause pylint to > BusError > from PyQt4 import QtGui , QtCore # pylint is happy ... > > * After a long fight of constant crashes I've debugged down to the > statement that actually crashes :-) > * Its because there is something strange about QtCore.QSignalMapper, > and here is the problem replicated ... > > >>> from PyQt4 import QtCore > >>> isinstance(QtCore.QSignalMapper, types.MethodType) > Bus error > > However this works ... > > >>> from PyQt4 import QtCore, QtGui > >>> isinstance(QtCore.QSignalMapper, types.MethodType) > False > > pylint sparks a crash (or rather logilab.astng.builder does) as it > will attempt to import and fully analyse QtCore before loading QtGui. > I'm hoping Phil at Riverbank Software might be able to cast some light > on what state QSignalMapper might be in before QtGui exists ... > > Kind regards > Derek > > [Machine details: > - OSX10.5 running macports python 2.6.2 > - PyQt4.5.4, sip 4.8.2 > - pylint 0.18, logilab.astng 0.19, logilab.common 0.42 > ]
This should be fixed in tonight's SIP snapshot. The problem is that QSignalMapper has a signal that passes a QWidget which, of course, isn't defined in QtCore. SIP has mechanisms for dealing with these sorts of forward references but the code that converts a type as a string to a generated type object wasn't dealing with it very well. Thanks, Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
