Reportiere den Fortschritt an QProgressBar unter Verwendung einer Variablen aus einem importierten Modul

Ich habe eine PyQT GUI-Anwendungprogress_bar.pymit einem einzigen Fortschrittsbalken und einem externen Modulworker.py mit einerprocess_files() -Funktion, die eine Routine mit einer Liste von Dateien ausführt und den aktuellen Fortschritt mit @ meldpercent variable.

Was ich tun möchte, ist den aktuellen Fortschritt von t zu melden, erworker.process_files usingQProgressBar.setValue() -Methode, aber ich habe keine Ahnung, wie ich sie implementieren soll (Rückruffunktion oder so?)

Hier sind meine Module:

progress_bar.py

import sys
from PyQt4 import QtGui
from worker import process_files


class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(100, 100, 300, 100)
        self.progress = QtGui.QProgressBar(self)
        self.progress.setGeometry(100, 50, 150, 20)
        self.progress.setValue(0)
        self.show()


app = QtGui.QApplication(sys.argv)
GUI = Window()
# process files and report progress using .setValue(percent)
process_files()
sys.exit(app.exec_())

worker.py

def process_files():
    file_list = ['file1', 'file2', 'file3']
    counter = 0
    for file in file_list:
        # do_stuff_with_the_file
        counter += 1
        percent = 100 * counter / len(file_list)
        print percent

Antworten auf die Frage(2)

Ihre Antwort auf die Frage