<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">yes of course! Than you!<div><br></div><div>----- main.py ----------</div><div><div>import sys</div><div><br></div><div>from PyQt5.QtCore import QUrl, QObject, pyqtProperty as Property, pyqtSignal as Signal</div><div>from PyQt5.QtQuick import QQuickView</div><div>from PyQt5.QtQml import qmlRegisterType</div><div>from PyQt5.QtGui import QGuiApplication, QOpenGLVersionProfile, QSurfaceFormat</div><div><br></div><div><br></div><div>class MyClass(QObject):</div><div>    def __init__(self, parent = None):</div><div>        super(MyClass, self).__init__(parent)</div><div>        self._bar = None</div><div>    def get_bar(self):</div><div>        return self._bar</div><div>    def set_bar(self, p):</div><div>        self._bar = p</div><div>    barChanged = Signal()</div><div>    bar = Property(int, get_bar, set_bar, notify = barChanged)</div><div><br></div><div>qmlRegisterType(MyClass, "MyModule", 1, 0, "MyClass")</div><div><br></div><div>if __name__ == '__main__':</div><div>    app = QGuiApplication(sys.argv)</div><div>    view = QQuickView()</div><div>    view.setSource( QUrl.fromLocalFile('whatever.qml') )</div><div>    view.show()</div><div>    QGuiApplication.processEvents()</div></div><div># you should see QObject::connect: Parentheses expected, signal MyClass:: in the console</div><div><br></div><div><br></div><div><br></div><div>---------- whatever.qml ---------------</div><div><br></div><div><div>import QtQuick 2.5</div><div>import MyModule 1.0</div><div>Rectangle</div><div>{</div><div>    height: 800</div><div>    width: 800</div><div>    color: "blue"</div><div><br></div><div>    MyClass</div><div>    {</div><div>        property var foo : [10,20,30]</div><div>        bar: foo[0]</div><div>    }</div><div>}</div></div><div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 28, 2019 at 5:01 PM Phil Thompson <<a href="mailto:phil@riverbankcomputing.com">phil@riverbankcomputing.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 28 Feb 2019, at 9:10 pm, Maxime Lemonnier <<a href="mailto:maxime.lemonnier@gmail.com" target="_blank">maxime.lemonnier@gmail.com</a>> wrote:<br>
> <br>
> When I derive a class from QObject and use it from qml, I get annoying warnings if I declare a property in the qml declaration, and bind that property anywhere.<br>
> <br>
> I get one <br>
> <br>
> 'QObject::connect: Parentheses expected, signal MyClass::'<br>
> <br>
> per binding, which can amount to a lot. so many in fact that it slows down startup time of my app significantly (.5s on Linux, 15-20s on Windoze).<br>
> <br>
> I can fix it by deriving from QQuickItem instead, but then I hit a mysterious:<br>
> <br>
> 'TypeError: a maximum of 30 QQuickItem types may be registered with QML'<br>
> <br>
> Where does this limitation comes from?, I get no hit from google on it. <br>
<br>
It's an arbitrary PyQt limit. It can be increased but I wouldn't want to (for example) increase it by 10x.<br>
<br>
If you have a short script that demonstrates the original problem I can look at it.<br>
<br>
Phil</blockquote></div>