[Interest] Strategies to create dialog boxes dynamically in Qml
Nuno Santos
nunosantos at imaginando.pt
Tue Sep 29 13:11:01 CEST 2015
Hi,
I’m trying to implement a custom dialog box on qml using dynamic object creation methods. I’m using the javascript approach to create the component and then the object. The object appears on the scene and it has two buttons. The question is. What are the strategies available to receive the user input and react according? I want to be able to receive the answer and then destroy the dialog.
My small test:
// main.qml
import QtQuick 2.4
import QtQuick.Window 2.2
import "ObjectManagement.js" as ObjectManagement
Window {
id: window
visible: true
width: 1024
height: 768
MouseArea {
anchors.fill: parent
onClicked: ObjectManagement.createUIDialog(window)
}
}
// ObjectManagement.js
var parent
var component;
var dialog;
function createUIDialog(p)
{
parent = p
component = Qt.createComponent("UIDialog.qml");
if (component.status==Component.Ready)
finishUIDialogCreation();
else
component.statusChanged.connect(finishUIDialogCreation);
}
function finishUIDialogCreation()
{
if (component.status==Component.Ready)
{
dialog = component.createObject(parent, {"x": 100, "y": 100});
if (dialog==null)
console.log("Error creating object");
}
else if (component.status==Component.Error)
console.log("Error loading component:", component.errorString());
}
// UIDialog.qml
import QtQuick 2.0
Rectangle {
id: root
color: "yellow"
width: 300
height: 100
signal okClicked
signal cancelClicked
Row {
Rectangle {
width: 100
height: 50
color: "green"
MouseArea {
anchors.fill: parent
onClicked: root.okClicked()
}
}
Rectangle {
width: 100
height: 50
color: "red"
MouseArea {
anchors.fill: parent
onClicked: root.cancelClicked()
}
}
}
}
Thanks
Regards,
Nuno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150929/b4f303c9/attachment.html>
More information about the Interest
mailing list