別のプラットフォームから移植されたデータ モデルを使用して、Qt に MVC を実装しようとしています。画面上にいくつかのウィジェットがあり、それぞれが同じモデルをリッスンしてデータをレンダリングします。ユーザーは、これらのウィジェットを操作して編集し、変更をモデルにプッシュすることもできます。
私が抱えている具体的な問題は、(移植された) データ モデルが変更され、たとえば setData を使用して QTreeWidgetItem にデータをプッシュすると、ウィジェットが itemChanged シグナルを発行することです。これにより、ユーザーの編集を監視しているコントローラー コードがトリガーされ、同じデータがモデルにプッシュされます。データ比較をどこかに挿入しないと、無限ループになってしまいます。
コントローラが itemChanged を発行せずにアイテムのデータを静かに更新する方法はありますか? あるいは、ウィジェットでのユーザーの編集とプログラムによる変更を区別するより良い方法はありますか? 私は単に itemChanged を聞いています。