如何使用PYQT4删除一个按钮?

How to delete a button using PYQT4?

我正在尝试删除此按钮

btn = QtGui.QPushButton("Log in", self)
btn.clicked.connect(self.remove)

单击按钮时,它应该会消失,但这不起作用

btn.deleteQPushButton()

或者如果有任何方法可以完全删除 window 中的每个按钮?

一个优雅的解决方案是使用 deleteLater():

btn = QtGui.QPushButton("Log in", self)
btn.clicked.connect(btn.deleteLater)

是的,使用 deleteLater

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton

if __name__ == '__main__':

    app = QApplication(sys.argv)

    wMain = QWidget()
    wMain.resize(250, 150)
    wMain.setWindowTitle('Main')
    wMain.show()

    centralLayout = QHBoxLayout(wMain)
    wMain.setLayout(centralLayout)

    button = QPushButton('Delete me',wMain)
    button.clicked.connect(button.deleteLater)
    centralLayout.addWidget(button)

    sys.exit(app.exec_())