from PySide.QtGui import *
import sys
app = QApplication(sys.argv)
layout = QHBoxLayout()
print issubclass(type(layout), QWidget)
# Layout is not a kind of QWidget
window = QWidget()
window.resize(500, 500)
window.show()
window.setLayout(layout)
butt = QPushButton("asdf", parent = None)
butt.resize(100, 100)
butt.show()
layout.addWidget(butt)
print butt.parent()
app.exec_()
butt
的父对象实际上是window
。
但我没有明确地将其父级设置为window
。
我可以说布局对象有一些可能的副作用
将添加的小部件的父级设置为它应用于的容器?
答案 0 :(得分:1)
是。
使用布局时,不需要传递父级 构建子窗口小部件。布局将自动重新显示 小部件(使用QWidget :: setParent())使它们成为子类 安装布局的小部件。
注意:布局中的窗口小部件是窗口小部件的子窗口 布局是安装的,而不是布局本身。小部件只能有 其他小部件作为父级,而不是布局。