표에 대한 데이터를 검색하고 제공하기 위해 QAbstractItemModel
규칙을 사용하는 일부 모델이 있습니다.QtQuick (Grid, TableView)과 함께 기존 (행, 열) C++ 모델 사용
예제 모델에는 여러 개의 열과 행이 있습니다. 불행히도 QtQuick 위젯은 단일 열만 처리 할 수 있습니다. 역할에 따라 다른 "열"이 QtQuick 위젯에 추가됩니다. 뷰의 여러 열이 모델의 동일한 열과 일치합니다. this question and its answer
QML을 C++ 측 (QAbstractProxyModel
)에 사용하기위한 추상화를 제공하는 것이 너무 어렵지 않아야한다고 생각했는데, N 행을 요청했을 때 모듈러스 그것을 소스 모델의 열 개수로 나누고 그 결과 실제 열에서 데이터를 검색합니다. 이것은 Grid
에서 작동하는 것으로 보이지만 연속 행 인덱스 만 사용하는 대신 TableViewColumn
과 역할 이름에 의존하기 때문에 TableView
에서는 작동하지 않습니다. 이를 위해 프록시 모델은 원본 모델의 어느 열을 검색 할 것인지에 따라 역할을 구별해야합니다.
http://qt-project.org/forums/viewthread/41793에 대한 답변에있는 스 니펫은 QSqlTableModel
을 채택하기 위해 사용하지만 여전히 많은 신호를 사용할 수 없도록 번역하지 못합니다. SQL 소스 모델이 columnsInserted
을 방출하는 경우 상상할 수 있듯이 해당 열에 대해 선택된 새 역할과 사용 가능한 역할 이름이 변경된 dataChanged
신호로 변환되어야합니다. QMLifyProxyModel은 4 년 동안 생산 준비가되어 있지 않고 죽은 상태가 아닌 것으로 보입니다.
공식 추천에 따르면 두 세계가 유창하게 함께 작동하도록이 문제를 어떻게 해결할 수 있습니까? QtQuick 뷰가 QAbstractItemModel
과 QTableView
이 이미 사용하고있는 (행, 열) 표기법을 사용하지 않는 이유는 무엇입니까?