2016-11-02 1 views
2

예 : 구성 요소에서 ListView를 다른 것들, 나는 보통 이렇게 :(중간) "모델"속성 유형으로 QtObject 또는 var를 사용해야합니까?

Item 
{ 
    property QtObject list_model: cpp_list_model 

    CustomListView { model: list_model } 
} 

이 구조 날 가령 할 수 있습니다 list_model이 컨텍스트 속성 인 경우에만 외부 항목을 사용하고 다른 QML 내부에서 인스턴스화되는 경우 CustomListView를 직접 사용하십시오.

내 동료 ListModel 같은 몇 가지되지 않기 때문에 차라리 대신 QtObjectvar를 사용해야 말한다 QtObject의 자체. 이 경우에 QVariant이 없기 때문에이 경우가 아니면 그냥 계속 QtObject을 사용해야합니까?

+0

대신'alias'를 사용할 수 있습니다. 따라서 'CustomListView'에서와 동일한 유형을 가질 수 있습니다. '재산 별명 list_model : myCustomListView.model'. – derM

+0

@derM 죄송합니다. 내 사례가 분명하지 않았습니다. C++의 컨텍스트 속성 인'cpp_list_model'을 포함하도록 수정 했으므로 여기서 알 수있는 별칭은 작동하지 않습니다. – rubenvb

+0

'ListModel'은 C++에서 QObject 파생 클래스라고 확신하지만 모델이 일반 숫자, 문자열 목록 등일 수도있는 경우'var'이 필요합니다. –

답변

1

C++에서 model 속성을 설정하지 않으려면 C++ 컨텍스트를 사용하여 다른 구성 요소 파일을 만드는 것이 어떨까요? (어쨌든 C++에서 QML 구성 요소를 인스턴스화하는 경우 여기 C++에서 그 일을 선호하는 것이다.) 대신 포장의

Item이 내용으로 QML 파일을 생성 :

CustomListView { 
    model: cpp_list_model 
} 

이 간단한 방법으로 당신 더미 Item 랩퍼를 사용하지 않아도 ListView의 기하학 W 특성에 쉽게 액세스 할 수 있습니다.

관련 문제