2017-07-31 105 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