私はGUIが多くのウィジェットと異なるウィンドウなどでPyQtでプログラムされています.GUIのデータはPythonオブジェクトに格納されています。このオブジェクトは、プログラムのすべてのウィジェットから到達可能である必要があります。このオブジェクトをどこに置くべきですか?PyQtアプリケーションでの共通データオブジェクトへのアクセス
今私は、プログラムのメインウィンドウに使用されているQMainWindowインスタンスに持っています。問題は、深くネストされたウィジェットからQMainWindowオブジェクトに到達することは難しいということです。これは、QtCore.QCoreApplication.instance()(これはanswerのように)で取得できるので、QApplicationインスタンスを使用するほうがはるかに簡単です。しかし、私はQApplicationクラスを変更するよう促す他の例は見つけられませんでしたので、本当にそのように使うべきかどうか疑問です。
どのようなアプローチをお勧めしますか?
単純なGUIの場合、QMainWindow内にデータを格納するだけで十分です( 'QWidget.window()'でアクセスするだけで十分です)。ほとんどのプログラムは1つのメインウィンドウといくつかのダイアログ(親ウィンドウのメインウィンドウへの参照を持っている)を持っているだけなので、それ以上の例が見つからない理由を説明するかもしれません。 もう1つのアプローチは 'QSettings'を使用しているかもしれませんが、実際のプログラム設定を保存する必要がある場合、これは良い解決策ではありません。 私は 'QCoreApplication.instance'システムを使います。 – musicamante