Qt:布局的潜在副作用?

时间:2012-09-24 15:37:50

标签: qt pyside

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。 我可以说布局对象有一些可能的副作用 将添加的小部件的父级设置为它应用于的容器?

1 个答案:

答案 0 :(得分:1)

是。

Relevant part from the docs

  

使用布局时,不需要传递父级   构建子窗口小部件。布局将自动重新显示   小部件(使用QWidget :: setParent())使它们成为子类   安装布局的小部件。

     

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