Attach QMLComponent to QQuickWindow in PySide2
Solved
QML and Qt Quick
-
Hey,
running Qt 5.15.2 (PySide2) I am trying to attach a QML Component as simple asRectangle{ color: "red" width: 100 height: 100 objectName: "MY RECT" Component.onCompleted: console.log("created") }
to my main window in Python 3. From my QQMLApplicationEngine I get my QQuickWindow:
window = QQuickWindow(engine.rootObjects()[0])
Then, I load my QMLComponent and create it:
component = QQmlComponent(engine, QUrl(".../dialog.qml")) object = QQuickItem(component.create()) QQmlEngine.setObjectOwnership(object, QQmlEngine.CppOwnership) object.setParentItem(window.contentItem()) object.setParent(engine)
I see that "created" is printed as expected but my rectangle is not showing up anywhere.
It works by just adding the Rectangle to my main window QML directly so something is fishy when calling this code.
Any clues what I am missing here?
Thanks a lot! -
Hey @ndias,
I am trying to attach to a QQuickWindow.
After some more try & error I finally managed to get it working by using createWithInitialProperties like so:initialProperties = {"parent": window.contentItem()} object = component.createWithInitialProperties(initialProperties, engine.rootContext())