2017-03-01 1 views
0

Voici mon code pour le bouton de clic:PyQt5: Comment faire un bouton fermer l'interface utilisateur graphique après avoir cliqué sur

run_btn=QtWidgets.QPushButton("Run") 
def main(): 
    print ('Starting Program') 
run_btn.clicked.connect(main) 

Mais après que je clique sur « Exécuter », il écrit seulement « à partir du programme » encore et encore, et la fenêtre GUI ne disparaît pas:

screenshot

Comment puis-je faire le bouton imprimer une fois et continuer avec le programme?

J'utilise PyQt5 et Python 3.4.0

+0

Il est difficile à dire de cet extrait. Pourriez-vous fournir un exemple de travail minimal reproduisant un comportement indésirable? – mFoxRU

+0

@mFoxRU http://prntscr.com/eek8ws Voici ce que je veux dire ... la fenêtre GUI ne disparaît pas ... –

+0

appel 'fermer()' méthode de la fenêtre principale – mFoxRU

Répondre

0

Supposons que le QPushButton est à l'intérieur du widget principal (dans l'exemple QWidget), pour fermer la fenêtre, nous utilisons le close()

from PyQt5 import QtWidgets 
import sys 

app = QtWidgets.QApplication(sys.argv) 
w = QtWidgets.QWidget() 

line1_edit = QtWidgets.QLineEdit() 
line2_edit = QtWidgets.QLineEdit() 

run_btn=QtWidgets.QPushButton("Run") 
def main(): 
    print ('Starting Program') 
    w.close() 

run_btn.clicked.connect(main) 

layout = QtWidgets.QVBoxLayout() 
layout.addWidget(line1_edit) 
layout.addWidget(line2_edit) 
layout.addWidget(run_btn) 
w.setLayout(layout) 
w.show() 
sys.exit(app.exec_()) 
+0

Yo man qu'est-ce que le sys.ext (app.exec()) fait? Et merci pour l'aide :) –