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