MainWindow에서 변수 및 함수에 액세스해야하는 QMainWindow에서 사용자 정의 위젯 클래스 (PyQT 5.9)가 하위로 있습니다. 나는 상상적으로 self.test라고 불리는 테스트 변수로 설정합니다. . 내가 자식 클래스() 테스트 self.parent를 사용하는 경우 그러나, 나는 얻을 오류 :PyQT의 QWidget에서 parent()를 호출하면 NoneType이됩니다.
File "D:/test.py", line 390, in mainWin = MainWindow()
File "D:/test.py", line 158, in init self.leftPane = FastaAnalysisWidget('left')
File "D:/test.py", line 26, in init print(self.parent().test)
AttributeError: 'NoneType' object has no attribute 'test'
이 단순화 된 자식 클래스 :
class FastaAnalysisWidget(QWidget):
def __init__(self, name, parent=None):
super(FastaAnalysisWidget, self).__init__(parent)
print(self.parent().test)
그리고이 단순화 된 부모 MainWindow를 수 있습니다 : 이 같은
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.test = 'blabla'
self.leftPane = FastaAnalysisWidget('left')
주요 외모 :
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec_())
저는 PyQT를 처음 접했고 PyQT를 시작하기 전에 파이썬에서 부모 - 자식 관계를 가지고 놀지 않았습니다. 내가 여기에 사용하는 코드는 탭이 별도의 클래스 인 QTabWidget을 사용하여 성공적으로 사용한 초기화입니다. 나는 명백한 것을 놓치고 있는가?
이제 알겠지만 분명합니다. 그런데 또 다른 코드가 다른 프로젝트에서 작동했습니다. (다른 사람들의 제안에서도 얻었습니다.) 필자는 기회가 생기면 파이썬 도움말 페이지에서이 주제를 읽도록 노력할 것이다. 초심자의 무지를 진심으로 사과드립니다. – Nanobody