4
나는 QAbstractItemModel에 따라 내 모델을 구현 그리고 난 계층 적 데이터를 표시하는 QTreeView로 사용하고 있습니다. 데이터는 sqlite 테이블에 저장됩니다.QTreeView/QAbstractItemModel - 항목을 추가하고 사용 beginInsertRows
내 질문은 하위 노드를 추가 할 때 내가 beginInsertRows를 호출하는 방법입니다. 부모 노드가 10 개 있다고 가정 해 보겠습니다. 그리고 새로운 하위 노드를 추가하고 싶습니다.
나는 이런 식으로 일을 해요 :beginInsertRows(parentIndex, currentNodesCount, currentNodesCount);
// actual inserting
endInsertRows()
currentNodesCount이 하위 노드의 행 수는 값 (10)을 포함한다. 새 노드가 11 번째 위치에 배치됩니다 (0부터 10까지 계산).
이 논리가 맞습니까?도움 주셔서 감사합니다.
beginRemoveRows 사용에 대해서도 궁금합니다.
이 정확 :
beginRemoveRows(parentIndex, currentRow, currentRow);
// delete record
endRemoveRows();
로 CurrentRow 그래 그거야 0
예. 감사합니다. 레코드를 수정 한 후에 뷰를 새로 고치는 방법은 무엇입니까? emit dataChanged (.., ..); ? –
Qt 문서 (http://doc.qt.nokia.com/latest/model-view-programming.html#model-subclassing-reference)에서 모델 서브 클래 싱에 대한 유용한 가이드를 찾을 수 있습니다. "크기 조정 가능한 모델"섹션에서 설명한 것처럼 대부분의 경우 begin **() 및 end **()는 데이터 구조가 변경된 것으로 연결된보기 (또는 다른 구성 요소)에 알리는 데 충분해야합니다. 추신 이 경우 – ixM
경우는 서브 클래스에 대해 언급 "대답"으로 플래그에 질문을 주저하지 마십시오 것은 죽은 링크를 링크에 –