[PyQt] qt_handleMouseEvent - public API?
Florian Bruhin
me at the-compiler.org
Tue Mar 29 08:01:51 BST 2016
Hey,
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
(bug report: [1])
When I demangle the symbol, I get:
qt_handleMouseEvent(QWindow*, QPointF const&, QPointF const&, QFlags<Qt::MouseButton>, QFlags<Qt::KeyboardModifier>)
Looking at the Qt 5.6 header diff[2], it looks indeed like an overload
was removed:
-Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF & local, const QPointF & global, Qt::MouseButtons b, Qt::KeyboardModifiers mods = Qt::NoModifier);
+Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF &local, const QPointF &global, Qt::MouseButtons b, Qt::KeyboardModifiers mods, int timestamp);
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?
Or doesn't it count as public (it's not documented?) and PyQt is using
private/half-public APIs?
If the latter is true, it means Archlinux should add PyQt to
qt5-base's rebuild.list, i.e. it'll be rebuilt automatically as soon
as Qt is updated.
Would that make sense?
Florian
[1] https://bugs.archlinux.org/task/48734
[2] https://www.mail-archive.com/development@qt-project.org/msg22054.html
--
http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP)
GPG: 916E B0C8 FD55 A072 | http://the-compiler.org/pubkey.asc
I love long mails! | http://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160329/c13cc877/attachment.sig>
More information about the PyQt
mailing list