3

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

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

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

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

4

2 回答 2

2

QWidget::hide()如果您不想删除按钮,请在从布局中删除之前尝试调用按钮。

于 2010-02-15T12:47:27.573 回答
2

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

button.setAttribute(Qt.WA_DeleteOnClose)
于 2010-02-15T07:58:48.723 回答