Qt 레이아웃과 위젯 관리를 탐색하면서 설명 할 수없는 동작이 발생했습니다.자동 추가의 목적은 무엇입니까? objectName '_layout'이있는 QLayout
MainWindow(QMainWindow) ->
centralwidget (QWidget),
menubar(QMenuBar),
statusbar(QStatusBar)
나중에 내가, 믿습니다은이 맥락에서 중요하지의 centralwidget에 여러 레이아웃과 위젯을 추가 할 수 있지만 :
나는 다음과 같은 계층 구조와 기본 UI가 있습니다.
이제 우리는 MainWindow를의 아이들을 선택하면 개체 및 ObjectName를 우리는 다음과 같은 표시됩니다
<PyQt5.QtWidgets.QLayout object at 0x00000000089425E8> _layout
<PyQt5.QtWidgets.QWidget object at 0x00000000087C6F78> centralwidget
<PyQt5.QtWidgets.QMenuBar object at 0x0000000008942048> menubar
<PyQt5.QtWidgets.QStatusBar object at 0x00000000089420D8> statusbar
어떤 이유로하는 QLayout 객체 _layout
나타납니다하십시오. 그러나 이것이 전부는 아닙니다. 이 QLayout은 영속적이지 않고 때로는 resize에 추가되거나 제거되는 것처럼 보입니다.
<PyQt5.QtWidgets.QLayout object at 0x0000000008942708> _layout
<PyQt5.QtWidgets.QLayout object at 0x00000000089425E8> _layout
<PyQt5.QtWidgets.QLayout object at 0x0000000008942798> _layout
<PyQt5.QtWidgets.QLayout object at 0x00000000089428B8> _layout
레이아웃이 있지만, 때마다 개체가 새로운 : 여러 창 크기를 조정 한 후에 나는 객체 주소는 여기에 크기 조정 이벤트에 대한 eventFilter을 추가하고있다.
여기 무슨 일 이니? 이 QLayout의 목적은 무엇이며 왜이 방식으로 작동합니까?
설명해 주셔서 감사합니다. 그리고 당신이 맞습니다, 어떤 이유로 PyQt는 동일한 기본 C++ 객체에 새로운 래퍼를 반환합니다. 랩된 객체의 주소를 얻는 방법을 찾고'''sip.unwrapinstance (obj)''를 찾았습니다. 이 다른 파이썬 래퍼에 대해 동일한 주소를 반환합니다. – wombatonfire