如何防止Qt按钮出现在单独的框架中?

时间:2010-02-15 07:26:32

标签: python qt qt4 pyqt pyqt4

我正在研究PyQt应用程序。目前,有一个状态面板(定义为QWidget),其中包含QHBoxLayout。此布局经常使用应用程序的另一部分创建的QPushButton进行更新。

每当出现的按钮需要更改(相当频繁)时,都会调用更新效果。现有按钮将从布局中删除(通过调用layout.removeWidget(button)然后调用button.setParent(None)),新按钮将添加到布局中。

通常,这是有效的。但偶尔,当我在按钮上调用button.setParent(None)进行删除时,会导致它弹出应用程序并开始浮动在自己的独立框架中。

如何从布局中删除按钮并确保它不会开始浮动?

2 个答案:

答案 0 :(得分:2)

您应该调用按钮的close()方法。如果要在关闭它时将其删除,可以设置Qt.WA_DeleteOnClose属性:

button.setAttribute(Qt.WA_DeleteOnClose)

答案 1 :(得分:2)

如果您不想删除按钮,请先从按钮上调用QWidget::hide(),然后再从布局中删除。