이 페이지에서

플레이스홀더 데이터 로드

Qt Quick 디자이너는 뷰, 모델 및 델리게이트를 지원하므로 그리드 뷰, 목록 뷰 또는 경로 뷰 구성 요소를 추가하면 ListModel 및 델리게이트 구성 요소가 자동으로 추가됩니다.

그러나 애플리케이션의 컨텍스트가 누락되면 문제가 발생합니다. C++로 정의된 특정 모델이 가장 대표적인 경우입니다. 컨텍스트에 C++ 또는 다른 컴포넌트 파일에 정의된 간단한 프로퍼티가 누락되는 경우가 종종 있습니다. 대표적인 예로 parent.width 과 같이 상위 컴포넌트의 프로퍼티를 사용하는 컴포넌트가 있습니다.

더미 모델 사용

2D 보기에서 C++ 모델을 참조하는 파일을 열면 아무것도 표시되지 않습니다. 인터넷에서 모델의 데이터를 가져오는 경우 데이터를 제어할 수 없습니다. 신뢰할 수 있는 데이터를 얻으려면 더미 데이터를 사용하세요.

예를 들어, 다음 코드 스니펫은 C++ 모델을 지정하는 ListView 파일이 포함된 example.qml 파일에 대해 설명합니다:

ListView {
    model: dataModel
    delegate: ContactDelegate {
        name: name
    }
}

프로젝트의 루트 디렉터리에 dummydata라는 이름의 디렉터리를 만들어 디바이스에 배포되지 않도록 합니다. dummydata 디렉터리에서 model 값과 이름이 같은 파일(.qml)을 만듭니다:

qml/exampleapp/example.qml
dummydata/dataModel.qml

그런 다음 더미 데이터가 포함된 dataModel.qml 파일을 만듭니다:

import QtQuick 2.0

ListModel {
     ListElement {
         name: "Ariane"
     }
     ListElement {
         name: "Bella"
     }
     ListElement {
         name: "Corinna"
     }
}

더미 컨텍스트 만들기

다음 예제는 일반적인 패턴을 보여줍니다:

Item {
    width: parent.width
    height: parent.height
}

애플리케이션에서는 잘 작동하지만 2D 보기에서는 크기가 0인 컴포넌트가 표시됩니다. 컨텍스트가 누락되었기 때문에 열린 파일의 부모가 존재하지 않습니다. 누락된 컨텍스트를 해결하기 위해 더미 컨텍스트라는 개념이 도입되었습니다. 애플리케이션과 이름이 같은 파일(여기서는 example.qml)을 dummydata/context 디렉터리에 배치하면 부모 컨텍스트를 가짜로 만들 수 있습니다:

import QtQuick 2.0
import QmlDesigner 1.0

DummyContextObject {
    parent: Item {
        width: 640
        height: 300
    }
}

방법도참조하세요 : Qt Quick UI 디자인하기, Qt Quick UI 디자인하기 Qt Quick UI 디자인하기를 참조하세요.

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.