1

私は、メモリを節約してパフォーマンスを向上させるために、ベーシックUITableViewとコンテナがテーブル セルをキャッシュしてからリサイクルし、ユーザーがスクロールしたときに表示されるものだけをロードする iOS 開発から来ています。UIScrollView

QListViewQTreeViewなどのコンテナがこのように機能するかどうか、または実際に表示されるサブセクションに関係なく、データ ソース全体をロードするかどうかを調べようとしています。

まだ問題は発生していませんが、潜在的に数千のレコードを持つ SQLite データベースを使用しており、QListView各レコードのテキストと共にサムネイルが表示されます。これまでのところ、数百レコードのパフォーマンスのテストは良好ですが、Qt モデル/ビュー アプローチが適切にスケーリングされるかどうか、またはこれを自分で管理することを考える必要があるかどうか疑問に思っています。

4

2 に答える 2

2

すべての Qt ウィジェットはすべてのデータを一度にロードしますが、表示されている場合にのみ描画されます。これについては明確な注意事項はありませんが、自分で確認できます。たとえば、50 アイテムのリストを作成してから、50 000 アイテムのリストを作成してみてください。違いがわかります。

私の経験から言えることは、ウィジェット内の 1000 を超えるアイテムは、ウィジェットのペイントと再ペイントに多少の遅延を引き起こす可能性がありますが、スクロール時にはそうではありません。アイテムをロードするだけで静的になる場合は、このことを気にするべきではないと思います。それ以外の場合は、setItemDelegateForRow()を使用して、描画される行の数を制御する必要があります。

于 2013-08-30T06:41:38.407 に答える