2014-11-27 5 views

답변

4

해결 방법은 다음과 같습니다

@TheIndependentAquarius, 당신은 당신의 로더에 해당하는 유형의 속성을 선언 할 수 있습니다 말 이외에
drawLineLoaderA.source = "DrawLineLoader.qml" 
if (drawLineLoaderA.status == Loader.Ready) 
{ 
    if (drawLineLoaderA.item && drawLineLoaderA.item.lineColour) 
    { 
     drawLineLoaderA.item.lineColour   = "black" 
     drawLineLoaderA.item.lineDrawingSourceType = 2 
    } 
} 
+2

여기에서 더 신중하게하는 것이 좋습니다. ** 먼저, 로더의'onLoaded'에서 모든 과제를 수행하십시오. ** 둘째, ** 날씨를 다시 확인하십시오. if (drawLineLoaderA.item && drawLineLoaderA.item.lineColour) {...}'를 실행하여 항목이 각각의 속성을 갖습니다. – troyane

+0

답변에 추가 할 수 있습니다. – troyane

1

: 다음과 같이 사용 후

Loader { 
    id: drawLineLoaderA 
    readonly property AA aa: item 
    source: "AA.qml" 
} 

을 그리고 :

if (drawLineLoaderA.aa) { 
    drawLineLoaderA.aa.color = "black" 
} 

이제는 AA 유형의 항목을 처리하고 로드 된 아이템의 속성에 보너스로 자동 완성됩니다.


주 1 :로드 된 항목의 속성을 구성 할 수 있어야 하나 @troyane이 제안, AA.qml 자체 (기본값) 또는 로더의 onLoaded 핸들러있다.

참고 2 : AA.qml에 property string lineColour을 신고하셨습니다. QML 유형 color에 관심이있을 수 있습니다. property color lineColour을 선언하면 QML은이 속성에 유효한 값을 할당했는지 확인합니다. 또한 color 값은 C++로 전달 될 때 자동으로 QColor로 변환됩니다 (물론 C++에서 전달 될 경우 QColor에서 부터 QColor로 변환됩니다).