[PyQt] findChild(Person, "person") for QML object fails?
bootch at nc.rr.com
bootch at nc.rr.com
Thu Oct 23 16:03:39 BST 2014
QObject.findChildren() seems to show a child of the type Person (from pyqt QML example in the docs) and objectName=="person",
but findChild(Person, "person") doesn't.
Here is a snippet of the code:
self.dumpQMLComponents(qmlRoot)
#result = qmlRoot.findChild(Person, "person")
result = qmlRoot.findChild(model.person.Person, "person")
assert result is not None
return result
def dumpQMLComponents(self, root):
children = root.findChildren(QObject)
for item in children:
# Note the QML id property is NOT the objectName
print(item, "name is:", item.objectName())
if isinstance(item, model.person.Person):
print("Is Person")
And a snippet of the printed output:
<PyQt5.QtQuick.QQuickItem object at 0xb2c064ac>
<model.person.Person object at 0xb2c062b4> name is: person
Is Person
<PyQt5.QtCore.QObject object at 0xb2c064f4> name is:
...
File "/home/bootch/git/demoQMLPyQt/widgetApp/graphicsView.py", line 52, in findPicker
assert result is not None
AssertionError
Its no big deal, I will just workaround.
Probably something I don't understand about Python types and C++ casting.
I can submit a complete small example.
More information about the PyQt
mailing list