0

質問は基本的にタイトルですが、もう少し詳細です:

をサブクラス化しました。QAbstractListModel名前を付けましょうmyModel。私はmyModelC++ コードでコンテンツを作成し、それをListViewQML にフィードしています。私のコードはmyModelC++ コードで変更され、私の ですぐに変更を確認できますListView。これは問題ありません。私の質問は、ListView下にあるモデルが変更されたとき(アイテムの追加など)、または単に新しいアイテムを描画したときに、すべての要素を再描画しますか?

4

2 に答える 2

1

それは、モデルが発行するシグナルに依存します。その一部は、保護されたメソッドをオーバーライドするだけでは明らかではない場合があります。QAbstractItemModel クラスのシグナルのドキュメントを参照してください。

于 2016-03-04T12:05:14.667 に答える
0

デリゲートの下で、ListView何回実行しComponent.onCompletedComponent.onDestruction呼び出したかを確認しました。その結果、新しいアイテムが挿入されたComponent.onCompletedときに が一度だけ呼び出され、アイテムが削除されたときに が一度だけComponent.onDestruction呼び出されます。つまり、ListViewアイテムを挿入および削除するときにリスト全体が再描画されません!

于 2016-03-04T21:31:20.930 に答える