<div dir="ltr"><div>I have verified that this also fails on Windows 10.<br></div><br>Here is the failing example in one file if it helps.<br><a href="https://gist.github.com/Siecje/08aa0ac1e1d651c04364130935191b2b#file-main-py">https://gist.github.com/Siecje/08aa0ac1e1d651c04364130935191b2b#file-main-py</a><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 7, 2018 at 10:41 AM, Peter-Simon Dieterich <span dir="ltr"><<a href="mailto:dieterich.peter@gmail.com" target="_blank">dieterich.peter@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I was using a pyqtProperty of Python-type dict to pass some<br>
information to Qml (QtQuick2). This worked fine in PyQt 5.8.2.<br>
However, with PyQt 5.10 the application SIGABRTs with exit code 134<br>
and the following error:<br>
<br>
    TypeError: unable to convert a Python 'dict' object to a C++<br>
'PyQt_PyObject' instance<br>
<br>
Am I using the pyqtProperty decorator wrongly or is this a bug?<br>
<br>
I have attached a minimal working example consisting of the python<br>
script main.py and the qml file main.qml.<br>
<br>
PyQt5 5.8.2 and 5.10 were both installed through pip.<br>
<br>
$ sip -V<br>
4.19.7<br>
$ qmake -v<br>
QMake version 3.0<br>
Using Qt version 5.7.1 in /usr/lib/x86_64-linux-gnu<br>
$ uname -a<br>
Linux dev-deb 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)<br>
x86_64 GNU/Linux<br>
$ python -V<br>
Python 3.5.3<br>
$ cat /etc/issue<br>
Debian GNU/Linux 9<br>
<br>
Thanks for any help! :)<br>
<br>
Peter<br>
<br>
<br>
<br>
########################<br>
# main.py<br>
########################<br>
import sys<br>
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, QUrl<br>
from PyQt5.QtWidgets import QApplication<br>
from PyQt5.QtQml import qmlRegisterType<br>
from PyQt5.QtQuick import QQuickView<br>
<br>
<br>
class Interface(QObject):<br>
    def __init__(self, parent=None):<br>
        super().__init__(parent=<wbr>parent)<br>
<br>
    mydictChanged = pyqtSignal()<br>
<br>
    @pyqtProperty(dict, notify=mydictChanged)<br>
    def mydict(self):<br>
        dct = {"a": 1, "b": 2}<br>
        return dct<br>
<br>
<br>
qmlRegisterType(Interface, 'org.MyInterface', 1, 0, 'MyInterface')<br>
<br>
<br>
if __name__ == "__main__":<br>
    app = QApplication(sys.argv)<br>
    view = QQuickView()<br>
    view.setSource(QUrl("main.qml"<wbr>))<br>
    view.show()<br>
<br>
    sys.exit(app.exec_())<br>
<br>
########################<br>
# main.qml<br>
########################<br>
import QtQuick 2.0<br>
import org.MyInterface 1.0<br>
<br>
Rectangle {<br>
    id: page<br>
<br>
    property MyInterface iface : MyInterface {}<br>
<br>
    width: 300<br>
    height: 300<br>
    border.width : 0<br>
<br>
    Column {<br>
        Text {<br>
            text : iface.mydict.a<br>
            font.family: "Helvetica"<br>
        }<br>
        Text {<br>
            text : iface.mydict.b<br>
            font.family: "Helvetica"<br>
        }<br>
    }<br>
 }<br>
______________________________<wbr>_________________<br>
PyQt mailing list    <a href="mailto:PyQt@riverbankcomputing.com">PyQt@riverbankcomputing.com</a><br>
<a href="https://www.riverbankcomputing.com/mailman/listinfo/pyqt" rel="noreferrer" target="_blank">https://www.<wbr>riverbankcomputing.com/<wbr>mailman/listinfo/pyqt</a></blockquote></div><br></div>