2017-03-01 1 views
0

Hier ist mein Code für die Klick-Taste ist:PyQt5: Wie eine Taste, um die gui zu schließen, um nach dem Klicken

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

Aber nachdem ich „Ausführen“ klicken, es ist nur druckt „Startprogramm“ wieder und wieder, und das GUI-Fenster verschwindet nicht:

screenshot

Wie kann ich die Taste macht es einmal gedruckt und mit dem Programm weitergehen?

Ich verwende PyQt5 und Python 3.4.0

+0

Es ist schwer zu sagen aus diesem snippet. Können Sie ein minimales Arbeitsbeispiel bereitstellen, das unerwünschtes Verhalten reproduziert? – mFoxRU

+0

@mFoxRU http://prntscr.com/eek8ws hier ist was ich meine ... das GUI-Fenster verschwindet nicht ... –

+0

Aufruf 'close()' Methode des Hauptfensters – mFoxRU

Antwort

0

Angenommen, der QPushButton ist innerhalb des Haupt Widget (im Beispiel QWidget), um das Fenster zu schließen, verwenden wir die 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 Mann was macht das sys.ext (app.exec())? und danke für die Hilfe :) –

Verwandte Themen