Ich habe viele Threads online gelesen, aber immer noch konnte ich die Lösung nicht finden. Meine Frage sollte sehr einfach sein: wie man ein Pyqt-Fenster schließt, OHNE auf eine Schaltfläche zu klicken oder einen Timer zu verwenden. Der Code habe ich versucht, wird unterPyqt Terminal hängt nach dem Beenden Fenster schließen Befehl
klebtefrom PyQt4 import QtGui, QtCore
import numpy as np
import progressMeter_simple
import sys
import time
import pdb
class ProgressMeter(progressMeter_simple.Ui_Dialog, QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
progressMeter_simple.Ui_Dialog.__init__(self)
self.setupUi(self)
self.progressBar.setRange(0, 0)
QtGui.QApplication.processEvents()
def termination(self):
time.sleep(5)
self.close()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Dialog = ProgressMeter()
Dialog.show()
Dialog.termination()
sys.exit(app.exec_())
Meine pyqt GUI entworfen wurde mit Qt Designer, und es ist nichts anderes als ein Fortschrittsbalken, der von links nach rechts (Besetzt-Anzeige) in Bewegung bleibt.
Wenn ich jedoch den obigen Code ausführen, hängt das Terminal immer noch, nachdem das Pyqt-Fenster geschlossen wurde. Strg + C konnte den Prozess auch nicht beenden. Kurz gesagt, wie kann ich ein Pyqt-Fenster korrekt schließen/beenden, ohne auf eine Schaltfläche zu klicken oder einen Timer zu verwenden?
Haken Sie das Schließen-Signal auf Progress bis zu 'app.exit'. – tacaswell
Nun, die Lösung ** ist ** sehr einfach, wenn Sie einen 'QTimer' verwenden. Was lässt dich denken, dass du keinen benutzen kannst? – ekhumoro