[PyQt] Problems creating QApplication instance (backdoor in addTypeSlots)
Marcin Cieslak
saper at saper.info
Tue Aug 24 14:47:34 BST 2010
On Thu, 5 Aug 2010, Phil Thompson wrote:
> On Wed, 4 Aug 2010 15:11:46 +0000, Marcin Cieslak <saper at saper.info>
> wrote:
>> Hello,
>>
>> I am pretty new to Qt4 and SIP but I try to find a problem
>> with the startup of the Py-Qt4 application (Hewlett Packard
>> printer toolbox utility from hp-lip package) on my FreeBSD box.
(...)
>> Simple "from PyQt4.QtGui import QApplication" fails with SIGSEGV:
>
> I don't see how that backtrace could be produced in the first place as
> sipEnumType_alloc() would never be called in that situation. I assume
> something has already gone wrong before the call to PyObject_Call().
>
> In tonight's snapshot I've changed things so that an assert() will fail if
> there is an attempt to use the back door recursively - but it works fine
> for me.
It turns out that somehow QtGui module interpreted :
static sipEncodedTypeDef supers_QApplication[] = {{33, 0, 1}};
in the way that pointed to "PyQt4.Qt.Version" enum (instead of
"QCoreApplication" class). Looked like a complete mismatch
of modules between the generation time and startup time.
Whatever it was, I have re-built everything again with debug symbols
and now it works fine. Strange, I am sure I have rebuilt pyqt few
times before.
Thank you for your help.
--Marcin
More information about the PyQt
mailing list