Qt 모델은 QAbstractListModel
일 수 있습니다. 각 "행"은 내가 QList
에 저장 한 객체를 나타냅니다. QML
에 ListView
으로 표시하고 있습니다. 그러나 각 객체에는 문자열 배열 인 하나의 속성이 있습니다. 해당 행을 표시하는 위임 내에 ListView
으로 표시하고 싶습니다. 하지만 그 모델 (개체의 문자열 배열 속성)을 QML
에 노출하는 방법을 모르겠습니다. 모델이 이므로 QVariants
일 수 없기 때문에 데이터 함수를 통해 노출 할 수 없습니다. 대신 QAbstractItemModel
을 사용하는 것을 생각했지만, 여전히 내 ListView
에 대한 모델을 얻는 방법을 모르겠습니다. 문제가 발생하면 Qt
5.0.0 릴리스를 사용하고 있습니다.모델 내의 Qt 모델?
3
A
답변
3
당신은 당신의 주요 QAbstractListModel에서 QVariantList을 반환 할 수 있습니다 이것은 다음 대리자에있는 내부 ListView에에 모델로 할당 할 수 있습니다. 예를 들어 내부 모델을 가진 매우 간단한 한 행 모델을 가진 작은 예제를 추가했습니다.
은 C++ 모델 클래스 :
class TestModel : public QAbstractListModel
{
public:
enum EventRoles {
StringRole = Qt::UserRole + 1
};
TestModel()
{
m_roles[ StringRole] = "stringList";
setRoleNames(m_roles);
}
int rowCount(const QModelIndex & = QModelIndex()) const
{
return 1;
}
QVariant data(const QModelIndex &index, int role) const
{
if(role == StringRole)
{
QVariantList list;
list.append("string1");
list.append("string2");
return list;
}
}
QHash<int, QByteArray> m_roles;
};
는 이제 QML이 모델을 설정하고 다음과 같이 사용할 수 있습니다 :
ListView {
anchors.fill: parent
model: theModel //this is your main model
delegate:
Rectangle {
height: 100
width: 100
color: "red"
ListView {
anchors.fill: parent
model: stringList //the internal QVariantList
delegate: Rectangle {
width: 50
height: 50
color: "green"
border.color: "black"
Text {
text: modelData //role to get data from internal model
}
}
}
}
}
관련 문제
- 1. 메인 모델 내의 모델 일람
- 2. 레일에서 모델 내의 모델 생성
- 3. 모델 폴더 내의 하위 폴더에있는 모델
- 4. PHP - Zend Framework : 모델 내의 모델?
- 5. Qt TableView에 모델 바인딩
- 6. Qt 정수 배열 모델
- 7. 동적 트리 모델 (Qt)
- 8. Qt 모델 대체
- 9. Qt, QListView 모델
- 10. 모델 내의 장고 필터
- 11. ActionFilter 내의 모델 가용성
- 12. 트리 뷰용 Qt 모델 만들기
- 13. Qt 프록시 모델 사용 예
- 14. 복합 모델 (모델 내의 모델) 또는 모델 간의 수동 외래 키 연관?
- 15. 모델 내의 변수 값 코드
- 16. ember #each 내의 다른 모델
- 17. IEnumerable 내의 2 개 모델
- 18. 모델 내의 컬렉션에있는 이벤트에 반응합니까?
- 19. Backbonejs - 모델 내의 컬렉션 필터링
- 20. MVC.net 모델 내의 필드 숨기기
- 21. Backbone.js 뷰 내의 여러 모델
- 22. 모델 아이템을 사용한 Qt 모델/뷰 : 특정 뷰 아이템이 필요합니까?
- 23. 다른 모델 파일 내의 다른 모델 파일 액세스
- 24. 모델 모델
- 25. Qt QTreeView 편집 가능한 DOM 모델
- 26. Qt 모델/뷰 및 QTableView의 기본 개념
- 27. 기본적으로 모델 지원이없는 Qt 위젯을 확장하는 방법
- 28. 중첩 객체 컬렉션이있는 시작 Qt 모델/뷰
- 29. 여러 부모가있는 항목이있는 Qt 트리 모델
- 30. 중첩 벡터의 Qt 사용자 정의 트리 모델
감사합니다. QVariant :: fromValue (myModelInstancePointer);'QVariant :: fromValue ' 또한 모델을'QVariant'로 나타낼 수 있습니다. –