2012-05-09 4 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

関連する問題