# self.worker1 = Work01(self)
# self.workerThread1 = QThread()
# self.worker1.moveToThread(self.workerThread1)
# self.worker1.progressChanged.connect(lambda value: self.onProgressChanged(1, value)) # 인덱스 1 전달
# self.workerThread1.started.connect(self.worker1.run)
# self.worker1.finished.connect(self.startNextWorker)
#
#
# self.worker2 = Work02(self)
# self.workerThread2 = QThread()
# self.worker2.moveToThread(self.workerThread2)
# self.worker2.progressChanged.connect(lambda value: self.onProgressChanged(2, value))
# self.workerThread2.started.connect(self.worker2.run)
# self.worker2.finished.connect(self.startNextWorker)
#
# self.worker3 = Work03(self, "Amazon", "2")
# self.workerThread3 = QThread()
# self.worker3.moveToThread(self.workerThread3)
# self.worker3.progressChanged.connect(lambda value: self.onProgressChanged(3, value)) # 인덱스 3 전달
# self.workerThread3.started.connect(self.worker3.run)
# self.worker3.finished.connect(self.startNextWorker)
#
#
# self.worker4 = Work04(self)
# self.workerThread4 = QThread()
# self.worker4.moveToThread(self.workerThread4)
# self.worker4.progressChanged.connect(lambda value: self.onProgressChanged(4, value)) # 인덱스 4 전달
# self.workerThread4.started.connect(self.worker4.run)
# self.worker4.finished.connect(self.startNextWorker)
workers_info = [
(Work01, 1, ()), # No additional arguments for Work01
(Work02, 2, ()), # No additional arguments for Work02
(Work03, 3, ("Amazon", "2")), # Additional arguments for Work03
(Work04, 4, ()) # No additional arguments for Work04
]
# Iterate over the list and create workers and threads dynamically
for worker_class, thread_number, args in workers_info:
worker = worker_class(self, *args) # Pass additional arguments to the constructor
worker_thread = QThread()
setattr(self, f"worker{thread_number}", worker)
setattr(self, f"workerThread{thread_number}", worker_thread)
worker.moveToThread(worker_thread)
worker.progressChanged.connect(lambda value, index=thread_number: self.onProgressChanged(index, value))
worker_thread.started.connect(worker.run)
worker.finished.connect(self.startNextWorker)