QML: aliases to children properties
12,925
Solution 1
That's because of the Component
QML element. Simply make the Dialog
a top-level item in your .qml
file and treat that as a component for dynamic instantiations.
Solution 2
Dialog object won't be available until u have instantiated it, since it's inside a component.
You can refer it's id, if it is not in the component.
Author by
Robotex
Updated on June 04, 2022Comments
-
Robotex about 2 years
I created dialog and trying to add some aliases to change it title and text:
import QtQuick 2.0 import Ubuntu.Components 0.1 import Ubuntu.Components.Popups 0.1 Item { signal confirmed; signal canceled; property alias title: dialog.title property alias text: dialog.text signal show(variant caller); Component { id: dialogComponent Dialog { id: dialog title: "Exit Game" text: "Are you sure that you want to exit?" Button { text: "cancel" onClicked: { canceled(); PopupUtils.close(dialog); } } Button { text: "confirm" color: "orange" onClicked: { confirmed(); PopupUtils.close(dialog); } } } } onShow: { PopupUtils.open(dialogComponent, caller) } }
But I has problem:
qrc:/ConfirmationDialog.qml:8:23: Invalid alias reference. Unable to find id "dialog"
So, how to create this aliases? Why Item don't see it? What is the best way to change this properties?
Best regards, Nick