Hallo ich möchte nach einem Thread der ein Datei kopiert das mein Dialog automatisch geschlossen wird. Ich hab schon vieles versucht und jetzt komm ich nicht weiter.
Hier der Code:
In der if anweisung wird der thread aufgerufen und wenn er beendet ist soll der komplete Dialog geschlossen werden, wie kann ich das realisieren.
@mika Du musst halt auf das Beenden des Threads reagieren, und ".close()" oder ".hide()" auf dem Dialog-Objekt aufrufen. Da Du ausgerechnet die Threadklasse nicht gezeigt hast, kann man Dir jetzt aber nicht sagen, wie das konkret aussehen kann.
danke erst mal für die Antwort. Den Dialog mit close() zu schließen das ist mir schon bekannt. Das Problem liegt daran das ich kein Signal bekomm wen der Thread fertig ist. Da helfen auch die Funktionen (wie z.b thread.join()) der Klasse Thread nicht weiter, weil die dann das Programm anhalten und mir dan die Prozessbar nicht mehr angezeigt wird. Hier noch der fehlende Code
class KopierThread(QtCore.QThread):
def __init__(self,s,d):
QtCore.QThread.__init__(self)
self.source = s
self.destination = d
def run(self):
shutil.copytree(self.source,self.destination)
Zuletzt geändert von Anonymous am Freitag 21. September 2012, 14:18, insgesamt 1-mal geändert.
Grund:Syntaxhervorherbung aktiviert
@mika Du musst aus Deiner Thread-Klasse heraus ein Signal senden, welches den Abschluss des Kopiervorgangs signalisiert (Beispiel für den Umgang mit Threads und Signal). Alternativ kannst Du für den Anfang auch das bereitgestellte "QThread.finished()"-Signal verwenden.
Bitte setze Deine Quelltext in Zukunft in Python-Tags, um die Einrückung zu erhalten, und die Syntaxhervorhebung zu aktivieren. Verwende dazu den "python"-Knopf direkt oberhalb des Eingabefelds. Danke.