QStandardItemModel といくつかのビューで Qt モデル ビュー システムを使い始めました。しかし、その後、ツリー、テーブル、リストなどのウィジェットもあることに気付きました。これらはたまたまビューとほぼ同じように使用されています。私はそれについてQtのドキュメントを読みましたが、正直なところ、ウィジェットも必要なものについて理解できませんでした.なぜビューが十分ではないのですか..
2 に答える
Q*ウィジェットは簡単なユースケースで使いやすいです。ただし、後でアイテムを検索して更新する必要がある場合、それらを処理するのは面倒になる可能性があります。概念を理解してしまえば、多くの場合、カスタム モデルを作成する方が簡単です。また、アイテム数が多いので、カスタムモデルの方が性能が良いです。
ビューと組み合わせたカスタム モデルはより柔軟です。プロキシ モデル、特にQSortFilterProxyModelを使用できるため、基本的な並べ替えとフィルタリングが非常に簡単になります。
カスタム モデルが難しすぎて (特にツリー モデルでは複雑になる可能性があります)、それでもビューとプロキシの柔軟性が必要な場合は、 QStandardItemModelを検討することをお勧めします: Q*Widget のようなアイテム ベースの API を提供しますが、さまざまなプロキシやビューと自由に組み合わせることができます。ある時点でカスタム モデルを使用することに決めた場合は、モデルを置き換えるだけで、タッチ プロキシとビューはまったくありません。
2 つのことを知っておく必要があります。
速度データの読み込みがいかに重要か。この質問を参照してください - Qt model/view vs standard widget。
QStandardItemModel よりも便利な QAbstractItemModel の実装が必要ですか? たとえば、ビューに存在する必要がある QVector が既にある場合は、標準よりも独自のモデルを使用すると便利です。