[PyQt] qt_handleMouseEvent - public API?

Dmitry Shachnev mitya57 at ubuntu.com
Tue Mar 29 15:59:03 BST 2016


Hi Florian,

On Tue, Mar 29, 2016 at 09:01:51AM +0200, Florian Bruhin wrote:
> on Archlinux, PyQt did break after updating Qt to 5.6:
> 
>     $ python -c "from PyQt5 import QtTest"
>     Traceback (most recent call last):
>       File "<string>", line 1, in <module>
>     ImportError: /usr/lib/python3.5/site-packages/PyQt5/QtTest.so: undefined symbol:
>     _Z19qt_handleMouseEventP7QWindowRK7QPointFS3_6QFlagsIN2Qt11MouseButtonEES4_INS5_16KeyboardModifierEE
>
> I'm not sure what happened here: Does qt_handleMouseEvent count as
> public API (it has a Q_GUI_EXPORT and is in a public header), and this
> was an unintentional ABI break from Qt?

To me it looks like an ABI break in Qt (and yes, that function matches the
criteria for public API). I think you should send a mail to Qt's development
mailing list, maybe it's not yet late to get it fixed in Qt 5.6.1.

PyQt5 is probably affected via QTest::mouseEvent, which is defined in an .h
file, and thus the compiler has the right to inline it, which results in
linking to that missing symbol.

--
Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160329/563ecf2a/attachment.sig>


More information about the PyQt mailing list