我正在研究PyQt应用程序。目前,有一个状态面板(定义为QWidget
),其中包含QHBoxLayout
。此布局经常使用应用程序的另一部分创建的QPushButton
进行更新。
每当出现的按钮需要更改(相当频繁)时,都会调用更新效果。现有按钮将从布局中删除(通过调用layout.removeWidget(button)
然后调用button.setParent(None)
),新按钮将添加到布局中。
通常,这是有效的。但偶尔,当我在按钮上调用button.setParent(None)
进行删除时,会导致它弹出应用程序并开始浮动在自己的独立框架中。
如何从布局中删除按钮并确保它不会开始浮动?
答案 0 :(得分:2)
您应该调用按钮的close()
方法。如果要在关闭它时将其删除,可以设置Qt.WA_DeleteOnClose
属性:
button.setAttribute(Qt.WA_DeleteOnClose)
答案 1 :(得分:2)
如果您不想删除按钮,请先从按钮上调用QWidget::hide()
,然后再从布局中删除。