2017-07-31 100 views
0

我试图删除这个按钮如何使用PYQT4删除按钮?

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

当单击该按钮,就应该消失,但这并不工作

btn.deleteQPushButton() 

或者,如果有任何方式完全删除每个按钮窗户?

回答

1

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

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

完美!轻松工作 - 谢谢! –

-1

是的,使用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_()) 
+0

你的答案和我的有什么不同? – eyllanesc

+0

我建议在回答之前阅读以下内容:https://stackoverflow.com/help/how-to-answer – eyllanesc