有没有一种方法可以清除(删除)布局中的所有小部件?
self.plot_layout = QtGui.QGridLayout()
self.plot_layout.setGeometry(QtCore.QRect(200,200,200,200))
self.root_layout.addLayout(self.plot_layout)
self.plot_layout.addWidget(MyWidget())
现在我想用一个新窗口小部件替换plot_layout
中的窗口小部件,有没有一种简单的方法可以清除plot_layout
中的所有窗口小部件?我没有看到任何方法可以这样做。
for i in reversed(range(layout.count()-1)):
是正确的,可以避免越界错误。 - MaxtakeAt()
而不是itemAt()
。takeAt()
函数还可以将没有父级的空白/拉伸项从QBoxLayout中删除:widget = layout.takeAt(i).widget(); if widget is not None: widget.setParent(None)
- Stefan ScherfkesetParent(None)
的方法可行吗?我认为这并不会删除 Widget。"当其父对象被删除时,新的控件也会被删除" 对我来说听起来像是在调用父对象的deleteLater()
函数时进行递归调用。 - Skandix