나는 QWidget을 기반으로 PyQt로 애플리케이션을 개발 중이다. 내 전체 응용 프로그램을 클래스 (예 : "Example") 안에 넣었습니다. 이 응용 프로그램 안에 QtDesigner에서 디자인 한 다른 QWidget 창 ("Report Widget")을 호출하는 단추가 있습니다. 문제는이 작업을 수행하는 방법을 모른다는 것입니다. 다음은 내가 사용하는 방법입니다 (인터넷에서 찾은 것에서 오는 것입니다).PyQt의 다른 QWidget에서 QWidget을 호출하는 방법
def ShowReportWidget(self):
self.f = QtGui.QWidget()
self.ReportWidget = ReportWidget(self.f)
self.ReportWidget.show()
:
ReportBtn = QtGui.QPushButton("Generate report")
ReportBtn.clicked.connect(self.ShowReportWidget)
두 번째 줄은 예 (주) 클래스의 ShowReportWidget 메소드를 호출 : 내 메인 클래스 "예"에 는 방법은 "보고서 위젯"에 대한 호출 버튼을 정의
class ReportWidget(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self)
self.ui = rw.Ui_ReportWidget()
self.ui.setupUi(parent)
결국,이 클래스는 외부 클래스를 말한다 (Ui_ReportWidg :
이 메소드는 클래스 예 (주) 클래스에서 클래스이다 ReportWidget를 호출 et), 다른 별도의 파이썬 파일 (QtDesigner .ui 파일에서 생성 된 파일)에 포함되어 있는데, 이는 스크립트 시작 부분에서 rw로 가져옵니다.
문제는이 방법으로 보고서 위젯 버튼을 클릭하면 새 창이 뜨지만 비어 있습니다. Ui_ReportWidget 클래스의 내용이로드되지 않습니다.
제 질문이 충분히 분명하기를 바랍니다. 초기화하기() 함수 호출 부모 QObject를 소요하면서
감사합니다. 그게 효과가 있지만 self.f.exec_() 대신에 self.f.show()를 끝내는 것만으로. 나는 모든 것을 이해했다고 100 % 확신하지는 않는다 ... –