2
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但我还没有明确地将其父级设置为。我可以说布局对象有一些副作用,可能会将添加的小部件的父级设置为它应用到的容器吗?

4

1 回答 1

1

是的。

文档中的相关部分

使用布局时,在构造子小部件时不需要传递父级。布局将自动重新设置小部件的父级(使用 QWidget::setParent()),以便它们是安装了布局的小部件的子级。

注意:布局中的小部件是安装了布局的小部件的子级,而不是布局本身的子级。小部件只能有其他小部件作为父级,而不是布局。

于 2012-09-25T12:42:36.800 回答