2012-05-09 1 views
7

모델을 사용하여 사용자 지정 데이터를 저장하려고합니다. 이를 위해 서브 클래 싱을 위해 선택할 항목 모델로 다소 혼란 스럽습니다. 서브 클래 싱을위한 가장 좋은 모델은 몇 가지 설명이 필요합니까? 또한 QStandardItemModel에 비해 QAbstractItemModel의 장점이 필요합니까?QStandardItemModel에 비해 QAbstractItemModel의 장점은 무엇입니까?

감사합니다.

답변

2

귀하의 필요에 따라 다릅니다. 사용자 지정 데이터를 저장하려는 경우에만 자신의 모델 논리를 쓰지 않으려면 QStandardItemModel을 사용하십시오. 이 클래스는 일반적이므로 서브 클래 싱없이 사용자 정의 데이터에 사용할 수 있습니다.

다른 방법으로, 자신의 모델 논리를 작성하려면 QAbstractItemModel을 선택하십시오. 추상 클래스입니다. 즉, 구현 된 동작이 없으며 단지 '인터페이스'입니다. 모델이 구현해야하는 메소드를 알려줌으로써 Qt의 다른 ItemModel 클래스로 사용할 수 있습니다.

+0

감사합니다 kousalik! 다른 주요 차이점은 무엇입니까? – Dev

+0

아니요, QStandardItemModel은 QAbstractItemModel – Kousalik

+0

의 구현 (하위 클래스)입니다. @Kousalik은 '모델 논리'가 의미하는 바를 확장 할 수 있습니까? QStandardItemModel이 구현하는 특정 모델 논리는 무엇이며, 이는 AbstractItemModel에 의해 수행되지 않는가? 예를 들어, 모델을 편집 가능하게하려면 StandardItemModel을 사용하면 더 쉬울까요? QAbstractItemModel을 사용하고 QStandardItemModel으로 전환해야하는 이유에 대해 생각하고 있기 때문에 궁금합니다. – neuronet