[PyQt] Fwd: QObject::connect: Parentheses expected, signal Actor::

Maxime Lemonnier maxime.lemonnier at gmail.com
Thu Feb 28 22:11:03 GMT 2019


yes of course! Than you!

----- main.py ----------
import sys

from PyQt5.QtCore import QUrl, QObject, pyqtProperty as Property,
pyqtSignal as Signal
from PyQt5.QtQuick import QQuickView
from PyQt5.QtQml import qmlRegisterType
from PyQt5.QtGui import QGuiApplication, QOpenGLVersionProfile,
QSurfaceFormat


class MyClass(QObject):
    def __init__(self, parent = None):
        super(MyClass, self).__init__(parent)
        self._bar = None
    def get_bar(self):
        return self._bar
    def set_bar(self, p):
        self._bar = p
    barChanged = Signal()
    bar = Property(int, get_bar, set_bar, notify = barChanged)

qmlRegisterType(MyClass, "MyModule", 1, 0, "MyClass")

if __name__ == '__main__':
    app = QGuiApplication(sys.argv)
    view = QQuickView()
    view.setSource( QUrl.fromLocalFile('whatever.qml') )
    view.show()
    QGuiApplication.processEvents()
# you should see QObject::connect: Parentheses expected, signal MyClass::
in the console



---------- whatever.qml ---------------

import QtQuick 2.5
import MyModule 1.0
Rectangle
{
    height: 800
    width: 800
    color: "blue"

    MyClass
    {
        property var foo : [10,20,30]
        bar: foo[0]
    }
}


On Thu, Feb 28, 2019 at 5:01 PM Phil Thompson <phil at riverbankcomputing.com>
wrote:

> On 28 Feb 2019, at 9:10 pm, Maxime Lemonnier <maxime.lemonnier at gmail.com>
> wrote:
> >
> > 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.
> >
> > I get one
> >
> > 'QObject::connect: Parentheses expected, signal MyClass::'
> >
> > 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).
> >
> > I can fix it by deriving from QQuickItem instead, but then I hit a
> mysterious:
> >
> > 'TypeError: a maximum of 30 QQuickItem types may be registered with QML'
> >
> > Where does this limitation comes from?, I get no hit from google on it.
>
> It's an arbitrary PyQt limit. It can be increased but I wouldn't want to
> (for example) increase it by 10x.
>
> If you have a short script that demonstrates the original problem I can
> look at it.
>
> Phil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20190228/60ce11ce/attachment.html>


More information about the PyQt mailing list