динамически, как и удаляются в случае необходимости. В одном элементе могут находится элементы разного типа, поэтому добавил доп. аттрибут "type" для тех элементов, которые удаляются при необходимости. Проблема в том, что после второго создания элемента он не находится в id_element.contentItem.children. Вот лог:
qml: panel created
qml: detected Menu_QMLTYPE_1(0x557ca7e82fe0)
qml: detected Tabs_QMLTYPE_6(0x557ca7ee4cd0)
qml: detected Panel_QMLTYPE_13(0x557ca7f0a840)
При первичном создании и удалении все корректно.
Однако после попытки в дальнейшем удалить этот элемент из списка, этого элемента там нет, хотя проверка на существование самого элемента успешна ( - !pan):
qml: panel created
qml: detected Menu_QMLTYPE_1(0x557ca7e82fe0)
qml: detected Tabs_QMLTYPE_6(0x557ca7ee4cd0)
Вот функция создания:
function butSelected(row, num){
console.log("was clicked", row, num);
downSize();
//destroyElement("panel");
var component = Qt.createComponent("panel/Panel.qml")
var func = ()=>{
if (component.status === Component.Ready){
console.log("create panel");
var pan = component.createObject(root);
if (!pan)
console.log("panel don't created");
else{
//TODO change panel interface
pan.title = "TITLE " + ((row*10) + num + 1);
pan.x = menu.width + 40;
pan.width = root.width - x;
pan.height = root.height;
upSize();
console.log("panel created");
if (elementExist("panel")){
console.log("success created panel");
} else {
console.log("panel don't created")
}
}
} else {
console.log("Error status");
}
}
if (component.status === Component.Ready)
func();
else
component.statusChanged.connect(func);
}
Хотя по интерфейсу явно видно, что он создается.
Вот функция вывода
function elementExist(element){
for (var i = 0; i < root.contentItem.children.length; i++){
console.log("detected ", root.contentItem.children[i]);
if (root.contentItem.children[i].type === element){
return true;
}
}
return false;
}
С другими элемента в таких случаях все корректно. Подскажите, из-за чего это может быть? Второй день не могу понять причину
не пробовал использовать Component ?
Не много не понял. Объясни, если можно Я пока использовал его только для вызова после создания Component.onCompleted
и можеш чуть более полный пример на pastebin выложить
Обсуждают сегодня