16

QStandardItemModel といくつかのビューで Qt モデル ビュー システムを使い始めました。しかし、その後、ツリー、テーブル、リストなどのウィジェットもあることに気付きました。これらはたまたまビューとほぼ同じように使用されています。私はそれについてQtのドキュメントを読みましたが、正直なところ、ウィジェットも必要なものについて理解できませんでした.なぜビューが十分ではないのですか..

4

2 に答える 2

10

Q*ウィジェットは簡単なユースケースで使いやすいです。ただし、後でアイテムを検索して更新する必要がある場合、それらを処理するのは面倒になる可能性があります。概念を理解してしまえば、多くの場合、カスタム モデルを作成する方が簡単です。また、アイテム数が多いので、カスタムモデルの方が性能が良いです。

ビューと組み合わせたカスタム モデルはより柔軟です。プロキシ モデル、特にQSortFilterProxyModelを使用できるため、基本的な並べ替えとフィルタリングが非常に簡単になります。

カスタム モデルが難しすぎて (特にツリー モデルでは複雑になる可能性があります)、それでもビューとプロキシの柔軟性が必要な場合は、 QStandardItemModelを検討することをお勧めします: Q*Widget のようなアイテム ベースの API を提供しますが、さまざまなプロキシやビューと自由に組み合わせることができます。ある時点でカスタム モデルを使用することに決めた場合は、モデルを置き換えるだけで、タッチ プロキシとビューはまったくありません。

于 2013-01-25T18:54:53.877 に答える
8

2 つのことを知っておく必要があります。

速度データの読み込みがいかに重要か。この質問を参照してください - Qt model/view vs standard widget

QStandardItemModel よりも便利な QAbstractItemModel の実装が必要ですか? たとえば、ビューに存在する必要がある QVector が既にある場合は、標準よりも独自のモデルを使用すると便利です。

于 2013-01-25T18:45:11.090 に答える