사용자 지정 QML 구성 요소 (다중 선택을 허용하는 ListView
의 특수화)를 만듭니다. 내 구성 요소에 제공된 객체에 첨부 된 속성을 제공하고 싶습니다. 나는 create attached properties using C++하는 방법을 참조하십시오. 그러나 순수 QML에서 사용자 지정 속성을 추가하는 방법에 대한 정보는 찾을 수 없습니다. QML을 사용하여이 작업을 수행 할 수 있습니까?QML의 사용자 지정 첨부 속성
0
A
답변
4
QML을 사용하면 가능합니까? 단지 원하는 속성을 구현하는 어댑터 객체를 사용 - QML에서이 대안, 간단하고 깨끗한 방법이 있습니다
번호
2
. 그런 다음 어댑터에 중첩 만 연결하는 대신 상위/컨테이너로 사용할 수 있습니다. 객체를 어댑터에 중첩하여 다른 C++ 독점 그룹 속성을 가져올 수도 있습니다. 이 오버 헤드를 최소화 할 수있는 방법은 단점을 가지고 JS 객체와 속성을 사용하는 것입니다. 변경 알림은 수동으로 방출하여 어느 정도 완화 할 수 있습니다.
예 :
// Adapter.qml - interface with attached properties
Item {
id: adapter
property int customInt : Math.random() * 1000
property var group : {"a" : Math.random(), "b" : Math.random() }
default property Component delegate
width: childrenRect.width
height: childrenRect.height
Component.onCompleted: delegate.createObject(adapter)
}
// usage
ListView {
width: 100
height: 300
model: 5
delegate: Adapter {
Row {
spacing: 10
Text { text: index }
Text { text: customInt }
Text { text: group.a }
Text { text: group.a }
}
}
}
그것은 다른 QML의 해결 방법에 비해 상당히 고통과 편리합니다. parent.parent.customInt
도 할 필요가 없습니다. 속성이 연결되어있는 것처럼 직접 액세스 할 수 있습니다. 이는 동적 범위 지정으로 인해 작동합니다. default property
을 사용하면 내부 위임자를 어댑터에 직접 추가 할 대리자를 중첩하는 속성으로 설정하지 않아도됩니다. 당신은 그냥 자리에 래핑 수있는 그 곡예 과잉 많은 경우에
는 : 뷰가 제대로 객체를 레이아웃 할 수 있도록
ListView {
width: 100
height: 300
model: 5
delegate: Item {
width: childrenRect.width
height: childrenRect.height
property string custom1: "another"
property string custom2: "set of"
property string custom3: "properties"
Row {
spacing: 10
Text { text: index }
Text { text: custom1 }
Text { text: custom2 }
Text { text: custom3 }
}
}
}
유일한 중요한 부분은 정말 어댑터 개체의 크기에 대한 구속력 . 필자는 기본적으로 동일하지만 C++로 구현 된 Wrap
요소를 일상적으로 사용합니다.이 요소는 QML 바인딩보다 훨씬 효율적입니다.
관련 문제
- 1. 첨부 된 속성 대 사용자 지정 컨트롤
- 2. qml의 QObject 속성 편집
- 3. 사용자 지정 속성 목록 속성
- 4. 사용자 지정 UITableViewCell 속성 지정
- 5. 사용자 지정 컨트롤의 사용자 지정 속성
- 6. 사용자 지정 속성 추가
- 7. 사용자 지정 속성 애니메이션
- 8. Magento 사용자 지정 속성
- 9. DialogPreference의 사용자 지정 속성
- 10. TwoLineListItem - 사용자 지정 속성
- 11. 사용자 지정 XAML 속성
- 12. ActionResult의 사용자 지정 속성
- 13. 캡슐화를위한 사용자 지정 속성
- 14. 사용자 지정 속성
- 15. 액세스 사용자 지정 속성
- 16. 사용하여 사용자 지정 속성
- 17. qml의 사용자 정의 라디오 버튼
- 18. 사용자 지정 컨트롤을 피하기 위해 연결된 속성
- 19. QML의 속성 바인딩 평가 순서 및 방식
- 20. CouchDB 첨부 파일에 대한 사용자 정의 속성
- 21. Magento 사용자 지정 VS 속성
- 22. 사용자 지정 스타일 속성 - XAML
- 23. 사용자 지정 컨트롤 속성 알림
- 24. 사용자 지정 컨트롤의 그룹 속성
- 25. xsd-schema의 사용자 지정 속성
- 26. 참조 사용자 지정 개체 속성
- 27. 문자열 속성의 사용자 지정 속성
- 28. Silverlight 사용자 지정 속성 상속
- 29. C# 사용자 지정 속성 대안
- 30. PropertyGrid - 사용자 지정 속성 이름?
누군가가 의사로부터 견적을 찾아야합니다. AFAIK에는 QML 구문이 없습니다. – Velkan
C++에서만 가능하다고 생각합니다. –