나는 많은 위젯과 다른 윈도우 등으로 PyQt에 프로그래밍 된 GUI를 가지고있다. GUI 용 데이터는 파이썬 객체에 저장된다. 이 객체는 프로그램의 모든 위젯에서 접근 할 수 있어야합니다. 이 물체를 어디에 두어야합니까?PyQt 애플리케이션에서 공통 데이터 객체에 액세스하기
지금 당장은 프로그램의 기본 창에 사용되는 QMainWindow 인스턴스에 있습니다. 문제는 깊게 중첩 된 위젯에서 QMainWindow 객체에 도달하는 것이 어렵다는 것입니다. QtCore.QCoreApplication.instance() (이 answer과 같이)를 사용하면 QApplication 인스턴스를 사용하는 것이 훨씬 간단 해 보입니다. 그러나 QApplication 클래스를 변경하도록 권장하는 다른 예제를 찾을 수 없으므로 실제로 그렇게 사용해야하는지 궁금합니다.
어떤 접근 방식을 제안 하시겠습니까?
간단한 GUI의 경우 QMainWindow 내에 데이터를 저장하면 충분합니다 ('QWidget.window() '를 통해 액세스). 대부분의 프로그램은 하나의 기본 창과 일부 대화 상자 (기본 창에 대한 참조가 부모 인 것처럼)가 있기 때문에 더 많은 예제를 찾을 수없는 이유를 설명 할 수 있습니다. 또 다른 접근법은'QSettings'을 사용하는 것이지만, 실제 프로그램 설정을 저장해야하는 경우에는 좋은 해결책이 될 수 없습니다. 'QCoreApplication.instance' 시스템을 고수 할 것입니다. – musicamante