2013-02-07 3 views
10

Qt 모델/뷰 프레임 워크를 사용하고 있습니다. 모델의 데이터를 재설정 할 때 뷰를 업데이트 할 수 있도록 모델을 재설정해야합니다. 그것을하는 방법? QAbstractItemModel에서 modelReset(QPrivateSignal);이라는 신호를 발견했습니다.이 문제를 해결하는 방법입니까? 신호를 내보내는 방법? 감사.Qt에서 모델을 재설정하는 방법은 무엇입니까?

+1

가치를 (스스로를 구현해야하는 것 등) model.removeRows(0,model.rowCount())을 사용할 수 있습니다. 모두 변경 사항에 따라 다릅니다. 모델 리셋은 모델에서 큰 틈새를 수행 할 때 유용합니다. 'beginInsertRow','beginMoveRows','beginRemoveRows'가 있습니다. 이러한 모든 방법은 열에도 적용됩니다. 그래서 작은 변화를 수행한다면 작은 변화를 적용하는 대신 전체 모델을 재구성 할 것이므로'beginResetModel'을 사용하지 마십시오. –

답변

11

데이터를 재설정하기 전에 beginResetModel()으로 전화 한 다음 완료하면 endResetModel()으로 전화하십시오. endResetModel()은 전용 신호를 방출합니다.

+0

감사합니다. – Borzh

2

here에서 볼 수 있듯이 모델 서브 클래스에서 재설정 코드를 둘러싼 beginResetModel()endResetModel() 함수를 사용하는 것이 좋습니다.

신호를 적절하게 방출하는 것을 처리해야합니다.

qabstractitemmodel 서브 클래스 중 일부는 당신이 뷰를 업데이트 할 수 있도록 다른 방법이 있다는 것을 언급

관련 문제