В моем QML GUI объекты создаются во время выполнения с помощью JavaScript.Как я могу получить доступ к свойствам этих динамически создаваемых объектов.В руководстве по QML нет информации об этом (http://doc.qt.io/archives/qt-4.8/qdeclarativedynamicobjects.html)
Мой идентификатор traget для изменения свойств после создания и сохранения их в Qt.labs.settings, поэтому моя программа сохраняет созданные объекты и может создавать эти объектыснова при запуске.
Создание объекта с помощью CreateSquareGaugeScript.createRect () работает, но я не могу найти способ получить доступ к его свойствам после этого.
Как и просил мой короткий простой пример.
main.cpp:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.0
import "qrc:/script.js" as MyScript
Window {
id: mainWindow
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button {
id: button
x: 540
y: 0
text: qsTr("Button")
onClicked: MyScript.createRect()
}
}
main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.0
import "qrc:/script.js" as MyScript
Window {
id: mainWindow
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Button {
id: button
x: 540
y: 0
text: qsTr("Button")
onClicked: MyScript.createRect()
}
}
Получаемый объект создан:
import QtQuick 2.0
Item {
width: 50
height: 50
Drag.active: true
MouseArea {
id: touchArea
anchors.fill: parent
drag.target: parent
}
Rectangle {
id: rectangle
x: 0
y: 0
width: 50
height: 50
color: "#ad0000"
}
}
И скрипт:
var component;
var gauge;
function createRect() {
component = Qt.createComponent("rect.qml");
if (component.status === Component.Ready){
finishCreation();
}
else {
component.statusChanged.connect(finishCreation);
console.log("component not ready!");
}
}
function finishCreation() {
if (component.status === Component.Ready) {
gauge = component.createObject(mainWindow);
if (gauge === null) {
// Error Handling
console.log("Error creating object");
}
} else if (component.status === Component.Error) {
// Error Handling
console.log("Error loading component:", component.errorString());
}
}
Объекты создаются так частокак пользователь хочет. Как я могу получить доступ к свойствам из созданных объектов из QML и сохранить их впоследствии в настройках, чтобы я мог воссоздать объекты после запуска программы