의 내가 사용자 지정 요소의 두 가지 유형이 있다고 가정 해 봅시다 장면은 내가 부모 클래스의 아이들을 모두 초기화 할로드 된 후 :QML 리피터 parentness
void InitializeChildren() {
list = findChildren<Child*>(QString(),Qt::FindChildrenRecursively);
foreach(Child * child,list) {
InitChild(this,child);
}
을하지만 그것을 더 복잡한 장면에서 실패합니다 :
Parent {
Rectangle {
Repeater {
model: 10
delegate: Child {
}
}
}
}
그냥 반복기에 하위 항목이 없습니다. 내 질문 - 특정 부모의 자식이 중첩 된 것을 정확히 알면 모든 하위 개체를 어떻게 얻을 수 있습니까? 당신은 또한 루트 QML 파일을로드하기 전에 setContextProperty
을 할 필요가
QList<QObject*> m_childModel;
void InitializeChildren() {
this->m_childModel.append(new Child("value 1"));
this->m_childModel.append(new Child("value 2"));
this->m_scene->rootContext()->setContextProperty("childModel", QVariant::fromValue(m_childModel));
}
: 당신의 C++에서
Parent {
Rectangle {
Repeater {
model: childModel
delegate: Child {
Text { text: childValue }
}
}
}
}
:
답장을 보내 주셔서 감사합니다. @Kirween. C++이 아닌 QML에서 유연한 구조를 만드는 것이 목적입니다. 새 자식 추가는 중첩 된 블록으로 공통 QML 스타일의 사용자에게 투명해야합니다. 자식은 Rectangle item 또는 다른 QML 노드 안에있을 수 있습니다. 그러나이 모든 요소는 반드시 부모의 자녀이며 반드시 부모의 직접적인 자녀는 아닙니다. 자식 노드 일 수 있습니다 ...이 힙에서만 가져와야합니다 자식 노드가 있지만 모두 해당 – folibis
이 문제점에 대한 업데이트는 있습니까? 나는 같은 문제를 겪고있다. –
+1 나는이 문제를 너무 가지고있다. .. – Avio