(PyQt 6.2.3) Creating a QQmlListProperty will cause access violation on application close (windows)

Jared Jones jared.randall.jones at gmail.com
Fri Feb 11 20:44:20 GMT 2022


Hi everyone,

Recently I upgraded an Application in my organization from PyQt 5.5 to PyQt
6.2.3. I noticed that after upgrading my application, it would cause a
windows access violation everytime I closed my application. I eventually
tracked the issue down to the QQmlListProperty() objects in my program.
When the application closes, the underlying QQmlListProperty() objects (at
the C++ level) do not seem to be deleted, which causes the access
violation. When I removed all QQmlListProperty() objects, my program no
longer throws an Access violation. Even when I have no QQmlListProperty()
objects in my program, if I drop into pdb, and create a basic
QQmlListProperty() object using the syntax "QQmlListProperty(QObject,
QObject(), [])", and do not assign this object to any python variable,
simply continuing execution after doing this (and then ultimately closing
my app). will cause an access violation.

As of right now, there is no way around this bug, except for not using
QQmlListProperty() entirely. QQmlListProperty() cannot be deleted with
sip.delete(), so once the object is created, an access violation WILL
happen when your application closes.There doesn't seem to be any way to
delete an underlying QQmlListProperty() object

Hopefully, this issue can be resolved in a future release.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20220211/6d2fc7da/attachment.htm>


More information about the PyQt mailing list