PyQt で GUI を開発しています。GUI には、qListWidget、qTableWidget、および Mayavi で実装されたプロットがあります。このリストは、プロットされる形状 (円柱や円錐など) を参照します。リストで形状が選択されている場合、形状のプロパティが (辞書変数から) テーブルに読み込まれ、形状がプロットで強調表示されるようにします。Mayavi プロットが正常に動作しています。また、テーブルが編集された場合は、形状を再プロットして、新しいプロパティ値を反映する必要があります (半径が変更された場合の円柱のように)。
したがって、リスト項目が選択されている場合 -> (辞書変数から) 項目のプロパティでテーブルを更新し、プロット上の項目を強調表示します
テーブルが編集された場合 -> 辞書変数を更新し、アイテムを再プロットします
問題: リスト項目を選択してテーブルにデータをロードすると、セルが更新されるたびに qTableWidget ItemChanged シグナルが発生し、不完全なデータで何度も形状を再プロットすることになります。
テーブルがプログラムによって更新されている間に GUI イベント ループを無効にする一般的な方法はありますか? (私は Excel VBA の経験があります。そのコンテキストで Application.EnableEvents=False を設定すると、セルがプログラムによって更新されるたびに WorksheetChange イベントがトリガーされるのを防ぐことができます。)テーブルは更新されていますか?アイテムごとではなく、一度にテーブル ウィジェットを更新する方法はありますか? (私は意図的に Model-View フレームワークを今のところ避けていることを認めます。したがって、qListWIdget と qTableWidget です)。
助言がありますか?
私は初めての投稿者ですが、StackOverflow の長年のユーザーです。このような素晴らしいコミュニティであることを前もって感謝したいと思います。